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-identity
en 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-kernel
en 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.