Semantiska kernelspråk som stöds
Semantisk kernel planerar att ge stöd till följande språk:
- C#
- Python
- Java
Även om den övergripande arkitekturen i kerneln är konsekvent på alla språk, såg vi till att SDK:t för varje språk följer vanliga paradigmer och format på varje språk så att det känns inbyggt och enkelt att använda.
Tillgängliga SDK-paket
C#-paket
I C# finns det flera paket som hjälper dig att se till att du bara behöver importera de funktioner som du behöver för projektet. I följande tabell visas de tillgängliga paketen i C#.
Paketnamn | beskrivning |
---|---|
Microsoft.SemanticKernel |
Huvudpaketet som innehåller allt för att komma igång |
Microsoft.SemanticKernel.Core |
Kärnpaketet som tillhandahåller implementeringar för Microsoft.SemanticKernel.Abstractions |
Microsoft.SemanticKernel.Abstractions |
Basabstraktionerna för semantisk kernel |
Microsoft.SemanticKernel.Connectors.OpenAI |
Anslutningsappen för OpenAI |
Microsoft.SemanticKernel.Connectors.HuggingFace |
Anslutningsappen för Hugging Face-modeller |
Microsoft.SemanticKernel.Connectors.Google |
Anslutningsappen för Google-modeller (t.ex. Gemini) |
Microsoft.SemanticKernel.Connectors.MistralAI |
Anslutningsappen för Mistral AI-modeller |
Microsoft.SemanticKernel.Plugins.OpenApi (Experimentell) |
Aktiverar inläsning av plugin-program från OpenAPI-specifikationer |
Microsoft.SemanticKernel.PromptTemplates.Handlebars |
Aktiverar användning av referensmallar för frågor |
Microsoft.SemanticKernel.Yaml |
Ger stöd för serialiseringsprompter med YAML-filer |
Microsoft.SemanticKernel.Prompty |
Ger stöd för serialiseringsprompter med prompty-filer |
Microsoft.SemanticKernel.Agents.Abstractions |
Tillhandahåller abstraktioner för att skapa agenter |
Microsoft.SemanticKernel.Agents.OpenAI |
Tillhandahåller stöd för API-agenter för assistenter |
Det finns andra paket tillgängliga (t.ex. minnesanslutningarna), men de är fortfarande experimentella och rekommenderas ännu inte för produktionsanvändning.
Om du vill installera något av dessa paket kan du använda följande kommando:
dotnet add package <package-name>
Python-paket
I Python finns det ett enda paket som innehåller allt du behöver för att komma igång med semantisk kernel. Om du vill installera paketet kan du använda följande kommando:
pip install semantic-kernel
Java-paket
För Java har semantisk kernel följande paket; alla finns under grupp-ID com.microsoft.semantic-kernel
och kan importeras från maven.
<dependency>
<groupId>com.microsoft.semantic-kernel</groupId>
<artifactId>semantickernel-api</artifactId>
</dependency>
En strukturlista tillhandahålls som kan användas för att definiera versionerna av alla Semantic Kernel-paket.
<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
– En Maven-projektstruktur som kan användas för att definiera versionerna av alla Semantic Kernel-paket.semantickernel-api
– Paket som definierar det offentliga kärn-API:et för semantisk kernel för ett Maven-projekt.semantickernel-aiservices-openai
– Tillhandahåller en anslutningsapp som kan användas för att interagera med OpenAI-API:et.
Nedan visas ett exempel på POM XML för ett enkelt projekt som använder 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>
Tillgängliga funktioner i varje SDK
Följande tabeller visar vilka funktioner som är tillgängliga på varje språk. Symbolen 🔄 anger att funktionen delvis har implementerats. Mer information finns i den associerade anteckningskolumnen. Symbolen ❌ anger att funktionen ännu inte är tillgänglig på det språket. Om du vill se en funktion implementerad på ett språk bör du överväga att bidra till projektet eller öppna ett problem.
Kärnfunktioner
Tjänster | C# | Python | Java | Kommentar |
---|---|---|---|---|
Uppmanas | ✅ | ✅ | ✅ | En fullständig lista över mall- och serialiseringsformat som stöds finns i tabellerna nedan |
Inbyggda funktioner och plugin-program | ✅ | ✅ | ✅ | |
OpenAPI-plugin-program | ✅ | ✅ | ✅ | Java har ett exempel som visar hur du läser in OpenAPI-plugin-program |
Automatisk funktionsanrop | ✅ | ✅ | ✅ | |
Öppna telemetriloggar | ✅ | 🔄 | ❌ | |
Krokar och filter | ✅ | ✅ | ✅ |
Fråga efter mallformat
När du redigerar frågor tillhandahåller Semantic Kernel en mängd olika mallspråk som gör att du kan bädda in variabler och anropa funktioner. I följande tabell visas vilka mallspråk som stöds på varje språk.
Format | C# | Python | Java | Kommentar |
---|---|---|---|---|
Mallspråk för semantisk kernel | ✅ | ✅ | ✅ | |
Handtag | ✅ | ✅ | ✅ | |
Liquid | ✅ | ❌ | ❌ | |
Jinja2 | ❌ | ✅ | ❌ |
Fråga efter serialiseringsformat
När du har skapat en fråga kan du serialisera den så att den kan lagras eller delas mellan team. I följande tabell visas vilka serialiseringsformat som stöds på varje språk.
Format | C# | Python | Java | Kommentar |
---|---|---|---|---|
YAML | ✅ | ✅ | ✅ | |
Fråga | ❌ | ✅ | ❌ |
AI-tjänster
Tjänster | C# | Python | Java | Kommentar |
---|---|---|---|---|
Textgenerering | ✅ | ✅ | ✅ | Exempel: Text-Davinci-003 |
Chatten har slutförts | ✅ | ✅ | ✅ | Exempel: GPT4, Chat-GPT |
Inbäddningar av text (experimentell) | ✅ | ✅ | ✅ | Exempel: Text-Embeddings-Ada-002 |
Text till bild (experimentell) | ✅ | ❌ | ❌ | Exempel: Dall-E |
Bild till text (experimentell) | ✅ | ❌ | ❌ | Exempel: Pix2Struct |
Text till ljud (experimentell) | ✅ | ❌ | ❌ | Exempel: Text till tal |
Ljud till text (experimentell) | ✅ | ❌ | ❌ | Exempel: Whisper |
AI-tjänstslutpunkter
Slutpunkter | C# | Python | Java | Kommentar |
---|---|---|---|---|
OpenAI | ✅ | ✅ | ✅ | |
Azure OpenAI | ✅ | ✅ | ✅ | |
Andra slutpunkter som suppoprt OpenAI API:er | ✅ | ✅ | ✅ | Innehåller Ollama, LLM Studio, Azure Model-as-a-service osv. |
API för att krama ansiktsinferens | 🔄 | ❌ | ❌ | Kommer snart till Python, inte alla scenarier omfattas för .NET |
Minnesanslutningar (experimentella)
Viktigt!
Alla befintliga minnesanslutningar är för närvarande experimentella och genomgår en aktiv utveckling för att förbättra upplevelsen av att använda dem. Om du vill ge feedback om det senaste förslaget kan du läsa de aktiva sök- och minnesanslutnings-ADR:erna.
Minnesanslutningar | C# | Python | Java | Kommentar |
---|---|---|---|---|
Azure AI-sökning | ✅ | ✅ | ✅ | |
Chroma | ✅ | ✅ | ❌ | |
DuckDB | ✅ | ❌ | ❌ | |
Milvus | 🔄 | ✅ | ❌ | |
Pinecone | ✅ | ✅ | ❌ | |
Postgres | ✅ | ✅ | ❌ | |
Qdrant | ✅ | 🔄 | ❌ | |
Redis | ✅ | 🔄 | ❌ | |
Sqlite | ✅ | ❌ | 🔄 | |
Viaviate | ✅ | ✅ | ❌ |