Udostępnij za pośrednictwem


Obsługiwane języki jądra semantycznego

Semantyczne plany jądra dotyczące zapewniania obsługi następujących języków:

  • C#
  • Python
  • Java

Mimo że ogólna architektura jądra jest spójna we wszystkich językach, upewniliśmy się, że zestaw SDK dla każdego języka jest zgodny z typowymi paradygmatami i stylami w każdym języku, aby był natywny i łatwy w użyciu.

Dostępne pakiety zestawu SDK

Pakiety języka C#

W języku C#istnieje kilka pakietów, które ułatwiają upewnienie się, że wystarczy zaimportować funkcje potrzebne dla projektu. W poniższej tabeli przedstawiono dostępne pakiety w języku C#.

Nazwa pakietu opis
Microsoft.SemanticKernel Główny pakiet zawierający wszystko, co należy rozpocząć
Microsoft.SemanticKernel.Core Podstawowy pakiet, który udostępnia implementacje dla programu Microsoft.SemanticKernel.Abstractions
Microsoft.SemanticKernel.Abstractions Abstrakcje podstawowe jądra semantycznego
Microsoft.SemanticKernel.Connectors.OpenAI Łącznik dla interfejsu OpenAI
Microsoft.SemanticKernel.Connectors.HuggingFace Łącznik dla modeli rozpoznawania twarzy
Microsoft.SemanticKernel.Connectors.Google Łącznik dla modeli Google (np. Gemini)
Microsoft.SemanticKernel.Connectors.MistralAI Łącznik modeli Mistral AI
Microsoft.SemanticKernel.Plugins.OpenApi (Eksperymentalne) Umożliwia ładowanie wtyczek ze specyfikacji interfejsu OpenAPI
Microsoft.SemanticKernel.PromptTemplates.Handlebars Umożliwia korzystanie z szablonów pasków obsługi dla monitów
Microsoft.SemanticKernel.Yaml Zapewnia obsługę serializacji monitów przy użyciu plików YAML
Microsoft.SemanticKernel.Prompty Zapewnia obsługę serializacji monitów przy użyciu plików Monity
Microsoft.SemanticKernel.Agents.Abstractions Udostępnia abstrakcje do tworzenia agentów
Microsoft.SemanticKernel.Agents.OpenAI Zapewnia obsługę agentów interfejsu API Asystenta

Dostępne są inne pakiety (np. łączniki pamięci), ale nadal są eksperymentalne i nie są jeszcze zalecane do użytku produkcyjnego.

Aby zainstalować dowolny z tych pakietów, możesz użyć następującego polecenia:

dotnet add package <package-name>

Pakiety języka Python

W języku Python istnieje jeden pakiet, który zawiera wszystko, czego potrzebujesz, aby rozpocząć pracę z jądrem semantycznym. Aby zainstalować pakiet, możesz użyć następującego polecenia:

pip install semantic-kernel

Na PyPI pod Provides-Extra dodatkowymi dodatkowymi dodatkowymi dodatkami można również zainstalować i w przypadku użycia, które zainstalują pakiety wymagane do używania sk z tym konkretnym łącznikiem lub usługą, można zainstalować te z kwadratową składnią nawiasu kwadratowego na przykład:

pip install semantic-kernel[azure]

Spowoduje to zainstalowanie semantycznego jądra, a także określonych przetestowanych wersji: azure-ai-inference, , azure-search-documentsazure-identityazure-coreazure-cosmos , i msgraph-sdk (oraz wszystkich zależności tych pakietów). Podobnie dodatkowa hugging_face funkcja zostanie zainstalowana transformers i sentence-transformers.

Pakiety Java

W przypadku języka Java semantyczne jądro ma następujące pakiety; wszystkie znajdują się pod identyfikatorem com.microsoft.semantic-kernelgrupy i można je zaimportować z narzędzia maven.

    <dependency>
        <groupId>com.microsoft.semantic-kernel</groupId>
        <artifactId>semantickernel-api</artifactId>
    </dependency>

Model BOM jest dostarczany, który może służyć do definiowania wersji wszystkich pakietów jądra semantycznego.

    <dependencyManagement>
        <dependencies>
            <dependency>
                <groupId>com.microsoft.semantic-kernel</groupId>
                <artifactId>semantickernel-bom</artifactId>
                <version>${semantickernel.version}</version>
                <scope>import</scope>
                <type>pom</type>
            </dependency>
        </dependencies>
    </dependencyManagement>
  • semantickernel-bom — Projekt Maven BOM, który może służyć do definiowania wersji wszystkich pakietów jądra semantycznego.
  • semantickernel-api — pakiet definiujący podstawowy publiczny interfejs API dla jądra semantycznego dla projektu Maven.
  • semantickernel-aiservices-openai — Udostępnia łącznik, który może służyć do interakcji z interfejsem API openAI.

Poniżej przedstawiono przykładowy kod XML POM dla prostego projektu, który używa interfejsu OpenAI.

<project>
    <dependencyManagement>
        <dependencies>
            <dependency>
                <groupId>com.microsoft.semantic-kernel</groupId>
                <artifactId>semantickernel-bom</artifactId>
                <version>${semantickernel.version}</version>
                <scope>import</scope>
                <type>pom</type>
            </dependency>
        </dependencies>
    </dependencyManagement>
    <dependencies>
        <dependency>
            <groupId>com.microsoft.semantic-kernel</groupId>
            <artifactId>semantickernel-api</artifactId>
        </dependency>
        <dependency>
            <groupId>com.microsoft.semantic-kernel</groupId>
            <artifactId>semantickernel-connectors-ai-openai</artifactId>
        </dependency>
    </dependencies>
</project>

Dostępne funkcje w każdym zestawie SDK

W poniższych tabelach pokazano, które funkcje są dostępne w każdym języku. Symbol 🔄 wskazuje, że funkcja jest częściowo zaimplementowana. Aby uzyskać więcej szczegółów, zobacz skojarzona kolumna notatek. Symbol ❌ wskazuje, że funkcja nie jest jeszcze dostępna w tym języku. Jeśli chcesz zobaczyć funkcję zaimplementowaną w języku, rozważ współtworzynie projektu lub otwarcie problemu.

Podstawowe możliwości

Usługi C# Python Java Uwagi
Polecenia Aby wyświetlić pełną listę obsługiwanych formatów szablonu i serializacji, zapoznaj się z poniższymi tabelami
Funkcje i wtyczki natywne
Wtyczki OpenAPI Język Java zawiera przykład pokazujący sposób ładowania wtyczek interfejsu OpenAPI
Automatyczne wywoływanie funkcji
Otwieranie dzienników telemetrii 🔄
Haki i filtry

Formaty szablonów monitów

Podczas tworzenia monitów semantyczne jądro udostępnia różne języki szablonu, które umożliwiają osadzanie zmiennych i wywoływanie funkcji. W poniższej tabeli przedstawiono języki szablonów obsługiwane w każdym języku.

Formaty C# Python Java Uwagi
Język szablonu jądra semantycznego
Kierownice
Liquid
Jinja2

Formaty serializacji monitów

Po utworzeniu monitu można go serializować, aby można było je przechowywać lub udostępniać w różnych zespołach. W poniższej tabeli przedstawiono, które formaty serializacji są obsługiwane w każdym języku.

Formaty C# Python Java Uwagi
YAML
Monity

Modalności usług sztucznej inteligencji

Usługi C# Python Java Uwagi
Generowanie tekstu Przykład: Text-Davinci-003
Uzupełnianie czatu Przykład: GPT4, Chat-GPT
Osadzanie tekstu (eksperymentalne) Przykład: Text-Embeddings-Ada-002
Tekst do obrazu (eksperymentalny) Przykład: Dall-E
Obraz do tekstu (eksperymentalny) Przykład: Pix2Struct
Tekst do dźwięku (eksperymentalny) Przykład: zamiana tekstu na mowę
Dźwięk do tekstu (eksperymentalny) Przykład: Szept

Łączniki usługi sztucznej inteligencji

Punkty końcowe C# Python Java Uwagi
OpenAI
Azure OpenAI
Inne punkty końcowe, które suppoprt interfejsy API openAI Obejmuje usługę Ollama, LLM Studio, model jako usługę platformy Azure itp.
Przytulanie interfejsu API wnioskowania twarzy 🔄 Wkrótce w języku Python nie wszystkie scenariusze są objęte platformą .NET

Łączniki pamięci (eksperymentalne)

Ważne

Wszystkie istniejące łączniki pamięci są obecnie eksperymentalne i zostaną zastąpione przez łączniki magazynu wektorów. Zapewni to więcej funkcji za pośrednictwem zaktualizowanej warstwy abstrakcji.

Łączniki pamięci C# Python Java Uwagi
Wyszukiwanie AI platformy Azure
Chroma
DuckDB
Milvus 🔄
Pinecone
Postgres
Qdrant 🔄
Redis 🔄
Sqlite 🔄
Weaviate

Łączniki magazynu wektorów (eksperymentalne)

Ważne

Wszystkie istniejące łączniki magazynu wektorów są obecnie eksperymentalne i są w trakcie aktywnego opracowywania, aby poprawić ich doświadczenie. Aby przekazać opinię na temat najnowszej propozycji, zapoznaj się z aktywnymi usługami ADRs łącznika wyszukiwania i pamięci.

Aby zapoznać się z listą łączników wektorów wektorowych i obsługi języka dla każdego z nich, zapoznaj się z łącznikami gotowe do użycia.