Dela via


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