Delen via


Ondersteunde Semantische kerneltalen

Semantische kernelplannen voor het bieden van ondersteuning aan de volgende talen:

  • C#
  • Python
  • Java

Hoewel de algehele architectuur van de kernel consistent is in alle talen, hebben we ervoor gezorgd dat de SDK voor elke taal algemene paradigma's en stijlen volgt om het systeemeigen en gebruiksvriendelijk te maken.

Beschikbare SDK-pakketten

C#-pakketten

In C# zijn er verschillende pakketten om ervoor te zorgen dat u alleen de functionaliteit hoeft te importeren die u nodig hebt voor uw project. In de volgende tabel ziet u de beschikbare pakketten in C#.

Naam van het pakket Beschrijving
Microsoft.SemanticKernel Het hoofdpakket dat alles bevat om aan de slag te gaan
Microsoft.SemanticKernel.Core Het kernpakket dat implementaties biedt voor Microsoft.SemanticKernel.Abstractions
Microsoft.SemanticKernel.Abstractions De basisabstracties voor Semantische kernel
Microsoft.SemanticKernel.Connectors.OpenAI De connector voor OpenAI
Microsoft.SemanticKernel.Connectors.HuggingFace De connector voor Face-modellen voor knuffelen
Microsoft.SemanticKernel.Connectors.Google De connector voor Google-modellen (bijvoorbeeld Gemini)
Microsoft.SemanticKernel.Connectors.MistralAI De connector voor Mistral AI-modellen
Microsoft.SemanticKernel.Plugins.OpenApi (Experimenteel) Hiermee kunt u invoegtoepassingen laden vanuit OpenAPI-specificaties
Microsoft.SemanticKernel.PromptTemplates.Handlebars Hiermee schakelt u het gebruik van handlebarssjablonen in voor prompts
Microsoft.SemanticKernel.Yaml Biedt ondersteuning voor het serialiseren van prompts met behulp van YAML-bestanden
Microsoft.SemanticKernel.Prompty Biedt ondersteuning voor het serialiseren van prompts met Prompty-bestanden
Microsoft.SemanticKernel.Agents.Abstractions Biedt abstracties voor het maken van agents
Microsoft.SemanticKernel.Agents.OpenAI Biedt ondersteuning voor assistent-API-agents

Er zijn andere pakketten beschikbaar (bijvoorbeeld de geheugenconnectors), maar ze zijn nog steeds experimenteel en worden nog niet aanbevolen voor productiegebruik.

Als u een van deze pakketten wilt installeren, kunt u de volgende opdracht gebruiken:

dotnet add package <package-name>

Python-pakketten

In Python is er één pakket dat alles bevat wat u nodig hebt om aan de slag te gaan met Semantic Kernel. Als u het pakket wilt installeren, kunt u de volgende opdracht gebruiken:

pip install semantic-kernel

Op PyPI onder Provides-Extra de extra extra's die u kunt installeren, worden ook vermeld en wanneer deze worden gebruikt om de pakketten te installeren die nodig zijn voor het gebruik van SK met die specifieke connector of service, kunt u deze bijvoorbeeld installeren met de syntaxis van vierkante haken:

pip install semantic-kernel[azure]

Hiermee installeert u Semantische kernel, evenals specifieke geteste versies van: azure-ai-inference, azure-search-documents, azure-core, azure-identityen azure-cosmos msgraph-sdk (en eventuele afhankelijkheden van deze pakketten). Op dezelfde manier wordt de extra hugging_face geïnstalleerd transformers en sentence-transformers.

Java-pakketten

Voor Java heeft Semantic Kernel de volgende pakketten; alle bevinden zich onder de groeps-id com.microsoft.semantic-kernelen kunnen worden geïmporteerd uit maven.

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

Er wordt een bom geleverd die kan worden gebruikt om de versies van alle Semantische Kernel-pakketten te definiëren.

    <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 – Een Maven-projectlijst die kan worden gebruikt om de versies van alle Semantische Kernel-pakketten te definiëren.
  • semantickernel-api – Pakket dat de kern openbare API definieert voor de Semantische kernel voor een Maven-project.
  • semantickernel-aiservices-openai –Biedt een connector die kan worden gebruikt om te communiceren met de OpenAI-API.

Hieronder ziet u een voorbeeld van POM XML voor een eenvoudig project dat gebruikmaakt van 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>

Beschikbare functies in elke SDK

In de volgende tabellen ziet u welke functies beschikbaar zijn in elke taal. Het 🔄 symbool geeft aan dat de functie gedeeltelijk is geïmplementeerd. Zie de bijbehorende notitiekolom voor meer informatie. Het ❌ symbool geeft aan dat de functie nog niet beschikbaar is in die taal. Als u een functie wilt zien die in een taal is geïmplementeerd, kunt u overwegen bij te dragen aan het project of een probleem te openen.

Kernmogelijkheden

Services C# Python Java Opmerkingen
Prompts Raadpleeg de onderstaande tabellen voor een volledige lijst met ondersteunde sjabloon- en serialisatie-indelingen
Systeemeigen functies en invoegtoepassingen
OpenAPI-invoegtoepassingen Java heeft een voorbeeld waarin wordt gedemonstreerd hoe u OpenAPI-invoegtoepassingen laadt
Automatische functie-aanroepen
Telemetrielogboeken openen 🔄
Haken en filters

Sjabloonindelingen vragen

Bij het ontwerpen van prompts biedt Semantische kernel diverse sjabloontalen waarmee u variabelen kunt insluiten en functies kunt aanroepen. In de volgende tabel ziet u welke sjabloontalen in elke taal worden ondersteund.

Notaties C# Python Java Opmerkingen
Semantische kernelsjabloontaal
Sturen
Liquid
Jinja2

Serialisatie-indelingen vragen

Nadat u een prompt hebt gemaakt, kunt u deze serialiseren zodat deze kan worden opgeslagen of gedeeld tussen teams. In de volgende tabel ziet u welke serialisatie-indelingen in elke taal worden ondersteund.

Notaties C# Python Java Opmerkingen
YAML
Prompty

AI Services-modaliteiten

Services C# Python Java Opmerkingen
Tekstgeneratie Voorbeeld: Text-Davinci-003
Chatvoltooiing Voorbeeld: GPT4, Chat-GPT
Tekst insluiten (experimenteel) Voorbeeld: Text-Embeddings-Ada-002
Tekst naar afbeelding (experimenteel) Voorbeeld: Dall-E
Afbeelding naar tekst (experimenteel) Voorbeeld: Pix2Struct
Tekst naar audio (experimenteel) Voorbeeld: Tekst-naar-spraak
Audio naar tekst (experimenteel) Voorbeeld: Fluisteren

AI-serviceconnectors

Eindpunten C# Python Java Opmerkingen
OpenAI
Azure OpenAI
Andere eindpunten die OpenAI-API's mogelijk maken Omvat Ollama, LLM Studio, Azure Model-as-a-service, enzovoort.
Face-deductie-API knuffelen 🔄 Binnenkort beschikbaar in Python, worden niet alle scenario's behandeld voor .NET

Geheugenconnectors (experimenteel)

Belangrijk

Alle bestaande geheugenconnectors zijn momenteel experimenteel en worden vervangen door Vector Store-connectors. Deze bieden meer functionaliteit via een bijgewerkte abstractielaag.

Geheugenconnectors C# Python Java Opmerkingen
Azure AI Search
Chroma
DuckDB
Milvus 🔄
Pinecone
Postgres
Qdrant 🔄
Redis 🔄
Sqlite 🔄
Weaviaat

Vector Store-connectors (experimenteel)

Belangrijk

Alle bestaande Vector Store-connectors zijn momenteel experimenteel en ondergaan actieve ontwikkeling om de ervaring van het gebruik ervan te verbeteren. Als u feedback wilt geven over het laatste voorstel, raadpleegt u de actieve ADR's voor zoek - en geheugenconnector .

Raadpleeg out of the box connectors (out of the box vector store) en de taalondersteuning voor elke connector.