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
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 |
---|---|---|---|---|
Gevraagd | ✅ | ✅ | ✅ | 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
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-service-eindpunten
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 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 .
Geheugenconnectors | C# | Python | Java | Opmerkingen |
---|---|---|---|---|
Azure AI Search | ✅ | ✅ | ✅ | |
Chroma | ✅ | ✅ | ❌ | |
DuckDB | ✅ | ❌ | ❌ | |
Milvus | 🔄 | ✅ | ❌ | |
Pinecone | ✅ | ✅ | ❌ | |
Postgres | ✅ | ✅ | ❌ | |
Qdrant | ✅ | 🔄 | ❌ | |
Redis | ✅ | 🔄 | ❌ | |
Sqlite | ✅ | ❌ | 🔄 | |
Weaviaat | ✅ | ✅ | ❌ |