Hinweis
Für den Zugriff auf diese Seite ist eine Autorisierung erforderlich. Sie können versuchen, sich anzumelden oder das Verzeichnis zu wechseln.
Für den Zugriff auf diese Seite ist eine Autorisierung erforderlich. Sie können versuchen, das Verzeichnis zu wechseln.
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 | ✅ | ✅ | ❌ |