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.

Verfügbare SDK-Pakete

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.OpenAI Der Connector für OpenAI
Microsoft.SemanticKernel.Connectors.HuggingFace Der Verbinder für Hugging Face Modelle
Microsoft.SemanticKernel.Connectors.Google Der Connector für Google-Modelle (z.B. Gemini)
Microsoft.SemanticKernel.Connectors.MistralAI Der Verbinder für Mistral AI-Modelle
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

Es gibt weitere Pakete (z. B. die Speicherconnectors), aber sie sind noch experimentell und werden noch nicht für die Produktionsverwendung empfohlen.

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
OpenAI
Azure OpenAI
Andere Endpunkte, die OpenAI-APIs suppoprt Umfasst Ollama, LLM Studio, Azure Model-as-a-Service usw.
Hugging Face Inference API 🔄 Bald in Python verfügbar, werden nicht alle Szenarien für .NET behandelt.

Speicherconnectors (Experimental)

Wichtig

Alle vorhandenen Speicherconnectors sind derzeit experimentell und werden durch Vector Store-Connectors ersetzt. Diese bieten mehr Funktionen über eine aktualisierte Abstraktionsebene.

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

Vector Store Connectors (Experimental)

Wichtig

Alle vorhandenen Vector Store-Connectors sind derzeit experimentell und werden aktiv entwickelt, um die Verwendung zu verbessern. Um Feedback zum aktuellen Vorschlag zu geben, lesen Sie bitte die aktiven AdRs für Such- und Speicherkonnektor .

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.