Támogatott szemantikai kernelnyelvek
A Szemantic Kernel a következő nyelvek támogatását tervezi:
- C#
- Python
- Java
Bár a kernel teljes architektúrája minden nyelven egységes, gondoskodtunk arról, hogy az egyes nyelvekhez tartozó SDK az egyes nyelvek általános paradigmáit és stílusait kövesse, hogy natívnak és könnyen használhatónak érezze magát.
Elérhető SDK-csomagok
C#-csomagok
A C#-ban számos csomag segíti annak biztosítását, hogy csak a projekthez szükséges funkciókat kell importálnia. Az alábbi táblázat a C#-ban elérhető csomagokat mutatja be.
Csomag neve | Leírás |
---|---|
Microsoft.SemanticKernel |
A fő csomag, amely mindent tartalmaz az első lépésekhez |
Microsoft.SemanticKernel.Core |
Az alapvető csomag, amely implementációkat biztosít a Microsoft.SemanticKernel.Abstractions |
Microsoft.SemanticKernel.Abstractions |
A Szemantikus Kernel alap absztrakciói |
Microsoft.SemanticKernel.Connectors.OpenAI |
Az OpenAI összekötője |
Microsoft.SemanticKernel.Connectors.HuggingFace |
Az összekötő a Face-modellek öleléséhez |
Microsoft.SemanticKernel.Connectors.Google |
A Google-modellek összekötője (pl. Gemini) |
Microsoft.SemanticKernel.Connectors.MistralAI |
A Mistral AI-modellek összekötője |
Microsoft.SemanticKernel.Plugins.OpenApi (Kísérleti) |
Beépülő modulok openAPI-specifikációkból való betöltésének engedélyezése |
Microsoft.SemanticKernel.PromptTemplates.Handlebars |
Handlebars-sablonok használatának engedélyezése kérésekhez |
Microsoft.SemanticKernel.Yaml |
Támogatást nyújt a parancssorok YAML-fájlok használatával történő szerializálásához |
Microsoft.SemanticKernel.Prompty |
Támogatást nyújt a parancssorok parancssori fájlok használatával történő szerializálásához |
Microsoft.SemanticKernel.Agents.Abstractions |
Absztrakciókat biztosít az ügynökök létrehozásához |
Microsoft.SemanticKernel.Agents.OpenAI |
Az Assistant API-ügynökök támogatását biztosítja |
Vannak más csomagok is (például a memória-összekötők), de még kísérleti jellegűek, és még nem ajánlottak éles használatra.
Ezen csomagok bármelyikének telepítéséhez használja a következő parancsot:
dotnet add package <package-name>
Python-csomagok
A Pythonban egyetlen csomag található, amely mindent tartalmaz, ami a Szemantic Kernel használatának megkezdéséhez szükséges. A csomag telepítéséhez használja a következő parancsot:
pip install semantic-kernel
Java-csomagok
Java esetén a Szemantic Kernel a következő csomagokkal rendelkezik; az összes a csoportazonosító com.microsoft.semantic-kernel
alatt van, és importálható a mavenből.
<dependency>
<groupId>com.microsoft.semantic-kernel</groupId>
<artifactId>semantickernel-api</artifactId>
</dependency>
Rendelkezésre áll egy BOM, amely az összes Szemantic Kernel-csomag verzióinak meghatározására használható.
<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
– Maven-projekt BOM, amely az összes Szemantic Kernel-csomag verzióinak meghatározására használható.semantickernel-api
– Egy Maven-projekt szemantikai kernelének alapvető nyilvános API-ját meghatározó csomag.semantickernel-aiservices-openai
–Olyan összekötőt biztosít, amely az OpenAI API-val való interakcióhoz használható.
Az alábbiakban egy példa POM XML-et láthat egy egyszerű, OpenAI-t használó projekthez.
<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>
Az egyes SDK-k elérhető funkciói
Az alábbi táblázatok azt mutatják be, hogy mely funkciók érhetők el az egyes nyelveken. A 🔄 szimbólum azt jelzi, hogy a funkció részben implementálva van, további részletekért tekintse meg a kapcsolódó jegyzetoszlopot. A ❌ szimbólum azt jelzi, hogy a funkció még nem érhető el ezen a nyelven; ha egy nyelven implementált funkciót szeretne látni, fontolja meg a projekthez való hozzájárulást vagy a probléma megnyitását.
Alapvető képességek
Szolgáltatások | C# | Python | Java | Jegyzetek |
---|---|---|---|---|
Kéri | ✅ | ✅ | ✅ | A támogatott sablon- és szerializálási formátumok teljes listájának megtekintéséhez tekintse meg az alábbi táblázatokat |
Natív függvények és beépülő modulok | ✅ | ✅ | ✅ | |
OpenAPI beépülő modulok | ✅ | ✅ | ✅ | A Java egy minta, amely bemutatja, hogyan tölthet be OpenAPI beépülő modulokat |
Automatikus függvényhívás | ✅ | ✅ | ✅ | |
Telemetriai naplók megnyitása | ✅ | 🔄 | ❌ | |
Horgok és szűrők | ✅ | ✅ | ✅ |
Sablonformátumok kérése
A kérések létrehozásakor a Szemantic Kernel számos sablonnyelvet biztosít, amelyek lehetővé teszik változók beágyazását és függvények meghívását. Az alábbi táblázat azt mutatja be, hogy az egyes nyelvek mely sablonnyelveket támogatják.
Formátumok | C# | Python | Java | Jegyzetek |
---|---|---|---|---|
Szemantikus kernelsablon nyelve | ✅ | ✅ | ✅ | |
Kormányok | ✅ | ✅ | ✅ | |
Liquid | ✅ | ❌ | ❌ | |
Jinja2 | ❌ | ✅ | ❌ |
Parancssori szerializálási formátumok
Miután létrehozott egy kérést, szerializálhatja, hogy az a csapatok között tárolható vagy megosztható legyen. Az alábbi táblázat azt mutatja be, hogy mely szerializálási formátumok támogatottak az egyes nyelveken.
Formátumok | C# | Python | Java | Jegyzetek |
---|---|---|---|---|
YAML | ✅ | ✅ | ✅ | |
Rákérdezés | ❌ | ✅ | ❌ |
AI-szolgáltatások
Szolgáltatások | C# | Python | Java | Jegyzetek |
---|---|---|---|---|
Szöveg létrehozása | ✅ | ✅ | ✅ | Példa: Text-Davinci-003 |
Csevegés befejezése | ✅ | ✅ | ✅ | Példa: GPT4, Chat-GPT |
Szövegbeágyazások (kísérleti) | ✅ | ✅ | ✅ | Példa: Text-Embeddings-Ada-002 |
Szövegről képre (kísérleti) | ✅ | ❌ | ❌ | Példa: Dall-E |
Képről szövegre (kísérleti) | ✅ | ❌ | ❌ | Példa: Pix2Struct |
Szövegről hangra (kísérleti) | ✅ | ❌ | ❌ | Példa: Szövegfelolvasás |
Hangról szövegre (kísérleti) | ✅ | ❌ | ❌ | Példa: Whisper |
AI-szolgáltatásvégpontok
Végpontok | C# | Python | Java | Jegyzetek |
---|---|---|---|---|
OpenAI | ✅ | ✅ | ✅ | |
Azure OpenAI | ✅ | ✅ | ✅ | |
Egyéb végpontok, amelyek az OpenAI API-kat fölérendelik | ✅ | ✅ | ✅ | Tartalmazza az Ollama, az LLM Studio, az Azure Model as-a-service stb. |
A Face Inference API ölelésében | 🔄 | ❌ | ❌ | Hamarosan megjelenik a Python, nem minden forgatókönyvet fed le a .NET |
Memória-összekötők (kísérleti)
Fontos
Az összes meglévő memória-összekötő jelenleg kísérleti jellegű, és aktív fejlesztés alatt áll a használatuk élményének javítása érdekében. Ha visszajelzést szeretne küldeni a legújabb javaslatról, tekintse meg az aktív keresési és memória-összekötői ADR-eket.
Memória-összekötők | C# | Python | Java | Jegyzetek |
---|---|---|---|---|
Azure AI Keresés | ✅ | ✅ | ✅ | |
Chroma | ✅ | ✅ | ❌ | |
DuckDB | ✅ | ❌ | ❌ | |
Milvus | 🔄 | ✅ | ❌ | |
Pinecone | ✅ | ✅ | ❌ | |
Postgres | ✅ | ✅ | ❌ | |
Qdrant | ✅ | 🔄 | ❌ | |
Redis | ✅ | 🔄 | ❌ | |
Sqlite | ✅ | ❌ | 🔄 | |
Weaviate | ✅ | ✅ | ❌ |