Sdílet prostřednictvím


Podporované sémantické jazyky jádra

Sémantické plány jádra poskytují podporu pro následující jazyky:

  • C#
  • Python
  • Java

I když je celková architektura jádra konzistentní ve všech jazycích, zajistili jsme, aby sada SDK pro každý jazyk používala běžná paradigmata a styly, aby se cítila jako nativní a snadno použitelná.

Dostupné balíčky SDK

Balíčky jazyka C#

V jazyce C# existuje několik balíčků, které vám pomůžou zajistit, že potřebujete importovat jenom funkce, které potřebujete pro svůj projekt. Následující tabulka uvádí dostupné balíčky v jazyce C#.

Název balíčku Popis
Microsoft.SemanticKernel Hlavní balíček, který obsahuje všechno, co chcete začít
Microsoft.SemanticKernel.Core Základní balíček, který poskytuje implementace pro Microsoft.SemanticKernel.Abstractions
Microsoft.SemanticKernel.Abstractions Základní abstrakce pro sémantické jádro
Microsoft.SemanticKernel.Connectors.OpenAI Konektor pro OpenAI
Microsoft.SemanticKernel.Connectors.HuggingFace Konektor pro modely Hugging Face
Microsoft.SemanticKernel.Connectors.Google Konektor pro modely Google (např. Gemini)
Microsoft.SemanticKernel.Connectors.MistralAI Konektor pro modely Mistral AI
Microsoft.SemanticKernel.Plugins.OpenApi (Experimentální) Umožňuje načítání modulů plug-in ze specifikací OpenAPI.
Microsoft.SemanticKernel.PromptTemplates.Handlebars Povolí použití šablon úchytů pro výzvy.
Microsoft.SemanticKernel.Yaml Poskytuje podporu pro serializaci výzev pomocí souborů YAML.
Microsoft.SemanticKernel.Prompty Poskytuje podporu pro serializaci výzev pomocí souborů prompty.
Microsoft.SemanticKernel.Agents.Abstractions Poskytuje abstrakce pro vytváření agentů.
Microsoft.SemanticKernel.Agents.OpenAI Poskytuje podporu pro agenty rozhraní API pomocníka.

K dispozici jsou další balíčky (např. paměťové konektory), ale jsou stále experimentální a ještě se nedoporučují pro produkční použití.

K instalaci některého z těchto balíčků můžete použít následující příkaz:

dotnet add package <package-name>

Balíčky Pythonu

V Pythonu je jeden balíček, který obsahuje vše, co potřebujete, abyste mohli začít se sémantickým jádrem. K instalaci balíčku můžete použít následující příkaz:

pip install semantic-kernel

Na PyPI v rámci Provides-Extra dalších extra, které můžete nainstalovat, jsou uvedeny také a při použití, které nainstaluje balíčky potřebné pro použití SKU s konkrétním konektorem nebo službou, můžete je nainstalovat se syntaxí hranatých závorek, například:

pip install semantic-kernel[azure]

Tím se nainstaluje sémantické jádro a také konkrétní otestované verze: azure-ai-inference, azure-coreazure-search-documents, , azure-cosmos azure-identitya msgraph-sdk (a všechny závislosti těchto balíčků). Podobně se nainstaluje hugging_face transformers a sentence-transformers.

Balíčky Java

Pro Javu má sémantické jádro následující balíčky; všechny jsou pod ID com.microsoft.semantic-kernelskupiny a lze je importovat z mavenu.

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

Poskytuje se kusovník, který lze použít k definování verzí všech sémantických balíčků jádra.

    <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 – Kusovník projektu Maven, který lze použít k definování verzí všech balíčků sémantického jádra.
  • semantickernel-api – Balíček, který definuje základní veřejné rozhraní API pro sémantické jádro projektu Maven.
  • semantickernel-aiservices-openai –Poskytuje konektor, který lze použít k interakci s rozhraním OpenAI API.

Níže je příklad XML POM pro jednoduchý projekt, který používá 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>

Dostupné funkce v každé sadě SDK

Následující tabulky ukazují, které funkce jsou dostupné v jednotlivých jazycích. Symbol 🔄 označuje, že je funkce částečně implementovaná, další podrobnosti najdete v přidruženém sloupci poznámek. Symbol ❌ označuje, že tato funkce ještě není v tomto jazyce dostupná. Pokud chcete vidět funkci implementovanou v jazyce, zvažte příspěvek k projektu nebo otevření problému.

Základní funkce

Služby C# Python Java Notes
Výzvy Úplný seznam podporovaných formátů šablon a serializace najdete v následujících tabulkách.
Nativní funkce a moduly plug-in
Moduly plug-in OpenAPI Java obsahuje ukázku, jak načíst moduly plug-in OpenAPI.
Automatické volání funkcí
Otevření protokolů telemetrie 🔄
Háky a filtry

Formáty šablon výzvy

Při vytváření výzev poskytuje sémantické jádro řadu jazyků šablon, které umožňují vkládat proměnné a volat funkce. Následující tabulka ukazuje, které jazyky šablon jsou podporovány v jednotlivých jazycích.

Formáty C# Python Java Notes
Sémantický jazyk šablony jádra
Handlebars
Liquid
Jinja2

Formáty serializace výzvy

Po vytvoření výzvy ji můžete serializovat, aby se mohly ukládat nebo sdílet napříč týmy. Následující tabulka uvádí, které formáty serializace jsou podporovány v jednotlivých jazycích.

Formáty C# Python Java Notes
YAML
Výzva

Způsoby poskytování služeb AI

Služby C# Python Java Notes
Generování textu Příklad: Text-Davinci-003
Dokončení chatu Příklad: GPT4, Chat-GPT
Vkládání textu (experimentální) Příklad: Text-Embeddings-Ada-002
Text na obrázek (experimentální) Příklad: Dall-E
Obrázek k textu (experimentální) Příklad: Pix2 – struktura
Text na zvuk (experimentální) Příklad: Převod textu na řeč
Zvuk na text (experimentální) Příklad: Šeptej

Konektory služby AI

Koncové body C# Python Java Notes
OpenAI
Azure OpenAI
Další koncové body, které suppoprt openAI API Zahrnuje Ollama, LLM Studio, Azure Model jako službu atd.
Rozhraní API pro odvozování tváří 🔄 Připravujeme python, ne všechny scénáře jsou pro .NET pokryté.

Konektory paměti (experimentální)

Důležité

Všechny existující paměťové konektory jsou aktuálně experimentální a nahradí se konektory Vector Store. Tyto funkce budou poskytovat více funkcí prostřednictvím aktualizované abstrakce vrstvy.

Konektory paměti C# Python Java Notes
Azure AI Vyhledávač
Sytost barvy
DuckDB
Milvus 🔄
Pinecone
Postgres
Qdrant 🔄
Redis 🔄
Sqlite 🔄
Weaviate

Konektory služby Vector Store (experimentální)

Důležité

Všechny existující konektory Vector Store jsou v současné době experimentální a procházejí aktivním vývojem, aby se zlepšily zkušenosti s jejich používáním. Pokud chcete poskytnout zpětnou vazbu k nejnovějšímu návrhu, projděte si aktivní žádosti o vyhledávání a konektory paměti.

Seznam předepisovaných konektorů vektorového úložiště a podporu jazyka pro každý z nich najdete v části Odsadové spojnice.