Megosztás:


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.

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.Amazon Az Amazon AI AI-összekötője
Microsoft.SemanticKernel.Connectors.AzureAIInference Az Azure AI-következtetés AI-összekötője
Microsoft.SemanticKernel.Connectors.AzureOpenAI Az Azure OpenAI AI-összekötője
Microsoft.SemanticKernel.Connectors.Google A Google-modellek AI-összekötője (pl. Gemini)
Microsoft.SemanticKernel.Connectors.HuggingFace A Face-modellek öleléséhez használható AI-összekötő
Microsoft.SemanticKernel.Connectors.MistralAI Mistral AI-modellek AI-összekötője
Microsoft.SemanticKernel.Connectors.Ollama Az Ollama AI-összekötője
Microsoft.SemanticKernel.Connectors.Onnx Az Onnx AI-összekötője
Microsoft.SemanticKernel.Connectors.OpenAI Az OpenAI AI-összekötője
Microsoft.SemanticKernel.Connectors.AzureAISearch Az Azure AI Search vektortároló-összekötője
Microsoft.SemanticKernel.Connectors.CosmosMongoDB Az Azure CosmosDB MongoDB vektortároló-összekötője
Microsoft.SemanticKernel.Connectors.CosmosNoSql Az Azure CosmosDB NoSQL vektortároló-összekötője
Microsoft.SemanticKernel.Connectors.MongoDB A MongoDB vektortároló-összekötője
Microsoft.SemanticKernel.Connectors.Pinecone A Pinecone vektortároló-összekötője
Microsoft.SemanticKernel.Connectors.Qdrant A Qdrant vektortároló-összekötője
Microsoft.SemanticKernel.Connectors.Redis A Redis vektortároló-összekötője
Microsoft.SemanticKernel.Connectors.SqliteVec Az Sqlite vektortároló-összekötője
Microsoft.SemanticKernel.Connectors.Weaviate A Weaviate vektortároló-ö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

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

A PyPI-n a további telepíthető extrák is Provides-Extra megjelennek, és ha az adott összekötővel vagy szolgáltatással együtt az SK használatához szükséges csomagokat telepíti, a szögletes zárójel szintaxissal rendelkező csomagokat telepítheti például:

pip install semantic-kernel[azure]

Ez telepíti a Szemantic Kernelt, valamint a következők meghatározott tesztelt verzióit: azure-ai-inference, azure-search-documents, azure-core, azure-identityés azure-cosmosmsgraph-sdk (és a csomagok függőségeit). Hasonlóképpen az extra hugging_face telepíti transformers és sentence-transformers.

Java-csomagok

Java esetén a Szemantic Kernel a következő csomagokkal rendelkezik; az összes a csoportazonosító com.microsoft.semantic-kernelalatt 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
Felszólítások 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 módozatai

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ás-összekötők

Végpontok C# Python Java Jegyzetek
Amazon Bedrock
Antropikus
Azure AI-következtetés
Azure OpenAI
Google
A Face Inference API ölelésében
Misztrál
Ollama
ONNX
OpenAI
Az OpenAI API-kat támogató egyéb végpontok Tartalmazza az LLM Studio-t stb.

Vektortároló-összekötők (kísérleti)

Figyelmeztetés

A Szemantic Kernel Vector Store funkció előzetes verzióban érhető el, és a kompatibilitástörő módosításokat igénylő fejlesztések még korlátozott körülmények között előfordulhatnak a kiadás előtt.

A dobozon kívüli vektortároló-összekötők listájáért és az egyes nyelvek támogatásáért tekintse meg a dobozon kívüli összekötőket.

Memóriatároló-összekötők (örökölt)

Fontos

A Memóriatár-összekötők örököltek, és vektortár-összekötők váltották fel. További információ: Régi memóriatárolók.

Memória-összekötők C# Python Java Jegyzetek
Azure AI Keresés
Chroma
DuckDB
Milvus
Pinecone
Postgres
Qdrant
Redis
Sqlite 🔄
Weaviate