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-core
azure-search-documents
, , azure-cosmos
azure-identity
a 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-kernel
skupiny 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.