Udostępnij przez


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.

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.Amazon Łącznik sztucznej inteligencji dla usługi Amazon AI
Microsoft.SemanticKernel.Connectors.AzureAIInference Łącznik sztucznej inteligencji dla wnioskowania usługi Azure AI
Microsoft.SemanticKernel.Connectors.AzureOpenAI Łącznik sztucznej inteligencji dla usługi Azure OpenAI
Microsoft.SemanticKernel.Connectors.Google Łącznik sztucznej inteligencji dla modeli Google (np. Gemini)
Microsoft.SemanticKernel.Connectors.HuggingFace Łącznik sztucznej inteligencji dla modeli rozpoznawania twarzy
Microsoft.SemanticKernel.Connectors.MistralAI Łącznik sztucznej inteligencji dla modeli Mistral AI
Microsoft.SemanticKernel.Connectors.Ollama Łącznik sztucznej inteligencji dla aplikacji Ollama
Microsoft.SemanticKernel.Connectors.Onnx Łącznik sztucznej inteligencji dla platformy Onnx
Microsoft.SemanticKernel.Connectors.OpenAI Łącznik sztucznej inteligencji dla interfejsu OpenAI
Microsoft.SemanticKernel.Connectors.AzureAISearch Łącznik magazynu wektorów dla usługi Azure AI Search
Microsoft.SemanticKernel.Connectors.CosmosMongoDB Łącznik magazynu wektorów dla bazy danych MongoDB usługi Azure CosmosDB
Microsoft.SemanticKernel.Connectors.CosmosNoSql Łącznik magazynu wektorów dla usługi Azure CosmosDB NoSQL
Microsoft.SemanticKernel.Connectors.MongoDB Łącznik magazynu wektorów dla bazy danych MongoDB
Microsoft.SemanticKernel.Connectors.Pinecone Łącznik magazynu wektorów dla Pinecone
Microsoft.SemanticKernel.Connectors.Qdrant Łącznik magazynu wektorów dla usługi Qdrant
Microsoft.SemanticKernel.Connectors.Redis Łącznik magazynu wektorów dla usługi Redis
Microsoft.SemanticKernel.Connectors.SqliteVec Łącznik magazynu wektorów dla usługi Sqlite
Microsoft.SemanticKernel.Connectors.Weaviate Łącznik magazynu wektorów dla aplikacji Weaviate
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

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-coreazure-identityazure-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
Amazon Bedrock
Antropiczny
Wnioskowanie AI na platformie Azure
Azure OpenAI
Google
Przytulanie interfejsu API wnioskowania twarzy
Mistral
Ollama
ONNX
OpenAI
Inne punkty końcowe, które obsługują interfejsy API openAI Obejmuje program LLM Studio itp.

Łączniki magazynu wektorów (eksperymentalne)

Ostrzeżenie

Funkcjonalność Semantycznego Magazynu Wektorów Kernela jest dostępna w wersji zapoznawczej, a w ograniczonych przypadkach przed wydaniem mogą pojawić się zmiany wymagające istotnych modyfikacji.

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.

Łączniki magazynu pamięci (starsza wersja)

Ważne

Łączniki magazynu pamięci są starsze i zostały zastąpione przez łączniki magazynu wektorów. Aby uzyskać więcej informacji, zobacz Starsze magazyny pamięci.

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