Freigeben über


Unterstützte Sprachen für den semantischen Kernel

Semantic Kernel plans on providing support to the following languages:

  • C#
  • Python
  • Java

Während die allgemeine Architektur des Kernels in allen Sprachen konsistent ist, haben wir sichergestellt, dass das SDK für jede Sprache gängige Paradigmen und Stile in jeder Sprache folgt, um es zu nativ und einfach zu bedienen.

C#-Pakete

In C# gibt es mehrere Pakete, um sicherzustellen, dass Sie nur die für Ihr Projekt benötigten Funktionen importieren müssen. In der folgenden Tabelle sind die verfügbaren Pakete in C# aufgeführt.

Paketname Beschreibung
Microsoft.SemanticKernel Das Hauptpaket, das alles enthält, um zu beginnen
Microsoft.SemanticKernel.Core Das Kernpaket, das Implementierungen für Microsoft.SemanticKernel.Abstractions
Microsoft.SemanticKernel.Abstractions Die Basisabstraktionen für den semantischen Kernel
Microsoft.SemanticKernel.Connectors.Amazon Der KI-Connector für Amazon AI
Microsoft.SemanticKernel.Connectors.AzureAIInference Der KI-Connector für Azure AI Inference
Microsoft.SemanticKernel.Connectors.AzureOpenAI Der KI-Connector für Azure OpenAI
Microsoft.SemanticKernel.Connectors.Google Der KI-Connector für Google-Modelle (z.B. Gemini)
Microsoft.SemanticKernel.Connectors.HuggingFace Der KI-Verbinder für Hugging Face-Modelle
Microsoft.SemanticKernel.Connectors.MistralAI Der KI-Connector für Mistral AI-Modelle
Microsoft.SemanticKernel.Connectors.Ollama Der KI-Connector für Ollama
Microsoft.SemanticKernel.Connectors.Onnx Der KI-Connector für Onnx
Microsoft.SemanticKernel.Connectors.OpenAI Der KI-Connector für OpenAI
Microsoft.SemanticKernel.Connectors.AzureAISearch Der Vektorspeicherconnector für Azure AI Search
Microsoft.SemanticKernel.Connectors.CosmosMongoDB Der Vektorspeicherconnector für Azure CosmosDB MongoDB
Microsoft.SemanticKernel.Connectors.CosmosNoSql Der Vektorspeicherconnector für Azure CosmosDB NoSQL
Microsoft.SemanticKernel.Connectors.MongoDB Der Vektorspeicherconnector für MongoDB
Microsoft.SemanticKernel.Connectors.Pinecone Der Vektorspeicherconnector für Pinecone
Microsoft.SemanticKernel.Connectors.Qdrant Der Vektorspeicherconnector für Qdrant
Microsoft.SemanticKernel.Connectors.Redis Der Vektorspeicherconnector für Redis
Microsoft.SemanticKernel.Connectors.SqliteVec Der Vektorspeicherconnector für Sqlite
Microsoft.SemanticKernel.Connectors.Weaviate Der Vektorspeicherconnector für Weaviate
Microsoft.SemanticKernel.Plugins.OpenApi (Experimental) Aktiviert das Laden von Plug-Ins aus OpenAPI-Spezifikationen
Microsoft.SemanticKernel.PromptTemplates.Handlebars Aktiviert die Verwendung von Handlebars-Vorlagen für Eingabeaufforderungen
Microsoft.SemanticKernel.Yaml Bietet Unterstützung für die Serialisierung von Eingabeaufforderungen mithilfe von YAML-Dateien
Microsoft.SemanticKernel.Prompty Bietet Unterstützung für die Serialisierung von Eingabeaufforderungen mithilfe von Eingabeaufforderungsdateien
Microsoft.SemanticKernel.Agents.Abstractions Stellt Abstraktionen zum Erstellen von Agents bereit.
Microsoft.SemanticKernel.Agents.OpenAI Bietet Unterstützung für Assistenten-API-Agents

Um eines dieser Pakete zu installieren, können Sie den folgenden Befehl verwenden:

dotnet add package <package-name>

Python-Pakete

In Python gibt es ein einzelnes Paket, das alles enthält, was Sie für die ersten Schritte mit dem semantischen Kernel benötigen. Zum Installieren des Pakets können Sie den folgenden Befehl verwenden:

pip install semantic-kernel

Auf PyPI unter Provides-Extra den zusätzlichen Extras, die Sie installieren können, werden auch aufgelistet und bei Verwendung, die für die Verwendung von SK mit diesem bestimmten Connector oder Dienst benötigt werden, können Sie diese mit der eckigen Klammernsyntax installieren, z. B.:

pip install semantic-kernel[azure]

Dadurch wird der semantische Kernel sowie bestimmte getestete Versionen von: azure-ai-inference, , azure-search-documents, azure-core, azure-identityund azure-cosmos (und msgraph-sdk alle Abhängigkeiten dieser Pakete) installiert. Ebenso wird das Extra hugging_face installiert transformers und sentence-transformers.

Java-Pakete

Für Java weist der semantische Kernel die folgenden Pakete auf: alle befinden sich unter der Gruppen-ID com.microsoft.semantic-kernelund können aus Maven importiert werden.

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

Es wird eine BOM bereitgestellt, die zum Definieren der Versionen aller semantischen Kernelpakete verwendet werden kann.

    <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 – Ein Maven-Projekt-BOM, das verwendet werden kann, um die Versionen aller semantischen Kernelpakete zu definieren.
  • semantickernel-api – Paket, das die zentrale öffentliche API für den semantischen Kernel für ein Maven-Projekt definiert.
  • semantickernel-aiservices-openai –Stellt einen Connector bereit, der für die Interaktion mit der OpenAI-API verwendet werden kann.

Nachfolgend finden Sie ein Beispiel für POM XML für ein einfaches Projekt, das OpenAI verwendet.

<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>

Verfügbare Features in jedem SDK

In den folgenden Tabellen wird gezeigt, welche Features in jeder Sprache verfügbar sind. Das 🔄 Symbol gibt an, dass das Feature teilweise implementiert ist. Weitere Details finden Sie in der zugehörigen Notizspalte. Das ❌ Symbol gibt an, dass das Feature noch nicht in dieser Sprache verfügbar ist. Wenn Sie ein Feature in einer Sprache implementieren möchten, sollten Sie einen Beitrag zum Projekt leisten oder ein Problem öffnen.

Grundlegende Funktionen

Dienste C# Python Java Hinweise
Eingabeaufforderungen Eine vollständige Liste der unterstützten Vorlagen- und Serialisierungsformate finden Sie in den folgenden Tabellen.
Systemeigene Funktionen und Plug-Ins
OpenAPI-Plug-Ins Java verfügt über ein Beispiel, in dem veranschaulicht wird, wie OpenAPI-Plug-Ins geladen werden.
Automatische Funktionsaufrufe
Öffnen von Telemetrieprotokollen
Hooks und Filter

Eingabeaufforderungsvorlagenformate

Beim Erstellen von Eingabeaufforderungen stellt der semantische Kernel eine Vielzahl von Vorlagensprachen bereit, mit denen Sie Variablen einbetten und Funktionen aufrufen können. Die folgende Tabelle zeigt, welche Vorlagensprachen in jeder Sprache unterstützt werden.

Formate C# Python Java Hinweise
Sprache der semantischen Kernelvorlage
Lenkstangen
Liquid
Jinja2

Serialisierungsformate für Aufforderungen

Nachdem Sie eine Eingabeaufforderung erstellt haben, können Sie sie serialisieren, damit sie in teamsübergreifend gespeichert oder freigegeben werden kann. Die folgende Tabelle zeigt, welche Serialisierungsformate in jeder Sprache unterstützt werden.

Formate C# Python Java Hinweise
YAML
Aufforderung

AI Services-Modalitäten

Dienste C# Python Java Hinweise
Textgenerierung Beispiel: Text-Davinci-003
Chatvervollständigung Beispiel: GPT4, Chat-GPT
Texteinbettungen (Experimental) Beispiel: Text-Embeddings-Ada-002
Text in Bild (Experimental) Beispiel: Dall-E
Bild zu Text (Experimental) Beispiel: Pix2Struct
Text in Audio (Experimental) Beispiel: Text-zu-Sprache
Audio zu Text (Experimental) Beispiel: Flüstern

KI-Dienstconnectors

Endpunkte C# Python Java Hinweise
Amazon Bedrock
Anthropic
Azure AI-Rückschluss
Azure OpenAI
Googeln
Hugging Face Inference API
Mistral
Ollama
ONNX
OpenAI
Andere Endpunkte, die OpenAI-APIs unterstützen Enthält LLM Studio usw.

Vector Store Connectors (Experimental)

Warnung

Die Funktionalität des Semantic Kernel Vector Store befindet sich in der Vorschau, und Verbesserungen, die einschneidende Änderungen erfordern, können unter begrenzten Umständen noch vor der Veröffentlichung auftreten.

Die Liste der out of the box Vector Store Connectors und die Sprachunterstützung für die einzelnen Vektorspeicher finden Sie unter out of the box connectors.

Speicherconnectors (Legacy)

Wichtig

Speicherconnectors sind legacy und wurden durch Vector Store-Connectors ersetzt. Weitere Informationen finden Sie unter Legacyspeicher für Arbeitsspeicher.

Speicherconnectors C# Python Java Hinweise
Azure KI Cognitive Search
Chroma
DuckDB
Milvus
Pinecone
Postgres
Qdrant
Redis
Sqlite 🔄
Weaviate