Partager via


Langages de noyau sémantique pris en charge

Plans de noyau sémantique sur la prise en charge des langages suivants :

  • C#
  • Python
  • Java

Bien que l’architecture globale du noyau soit cohérente entre tous les langages, nous avons assuré que le SDK pour chaque langage suit des paradigmes et des styles courants dans chaque langage pour qu’il soit natif et facile à utiliser.

Packages sdk disponibles

Packages C#

En C#, il existe plusieurs packages pour vous assurer que vous devez uniquement importer les fonctionnalités dont vous avez besoin pour votre projet. Le tableau suivant montre les packages disponibles en C#.

Nom du package Description
Microsoft.SemanticKernel Le package principal qui inclut tout pour commencer
Microsoft.SemanticKernel.Core Package principal qui fournit des implémentations pour Microsoft.SemanticKernel.Abstractions
Microsoft.SemanticKernel.Abstractions Abstractions de base pour le noyau sémantique
Microsoft.SemanticKernel.Connectors.OpenAI Connecteur pour OpenAI
Microsoft.SemanticKernel.Connectors.HuggingFace Connecteur pour les modèles Visage hugging
Microsoft.SemanticKernel.Connectors.Google Connecteur pour les modèles Google (par exemple, Gemini)
Microsoft.SemanticKernel.Connectors.MistralAI Connecteur pour les modèles Mistral AI
Microsoft.SemanticKernel.Plugins.OpenApi (Expérimental) Active le chargement de plug-ins à partir de spécifications OpenAPI
Microsoft.SemanticKernel.PromptTemplates.Handlebars Active l’utilisation de modèles Handlebars pour les invites
Microsoft.SemanticKernel.Yaml Fournit la prise en charge de la sérialisation des invites à l’aide de fichiers YAML
Microsoft.SemanticKernel.Prompty Fournit la prise en charge de la sérialisation des invites à l’aide de fichiers Prompty
Microsoft.SemanticKernel.Agents.Abstractions Fournit des abstractions pour la création d’agents
Microsoft.SemanticKernel.Agents.OpenAI Fournit la prise en charge des agents d’API Assistant

Il existe d’autres packages disponibles (par exemple, les connecteurs de mémoire), mais ils sont toujours expérimentaux et ne sont pas encore recommandés pour une utilisation en production.

Pour installer l’un de ces packages, vous pouvez utiliser la commande suivante :

dotnet add package <package-name>

Packages Python

Dans Python, il existe un package unique qui inclut tout ce dont vous avez besoin pour commencer à utiliser le noyau sémantique. Pour installer le package, vous pouvez utiliser la commande suivante :

pip install semantic-kernel

Packages Java

Pour Java, le noyau sémantique comporte les packages suivants ; tous sont sous l’ID com.microsoft.semantic-kernelde groupe et peuvent être importés à partir de maven.

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

Un boM est fourni pour définir les versions de tous les packages de noyau sémantique.

    <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 – BoM de projet Maven qui peut être utilisé pour définir les versions de tous les packages de noyau sémantique.
  • semantickernel-api – Package qui définit l’API publique principale pour le noyau sémantique pour un projet Maven.
  • semantickernel-aiservices-openai –Fournit un connecteur qui peut être utilisé pour interagir avec l’API OpenAI.

Voici un exemple POM XML pour un projet simple qui utilise 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>

Fonctionnalités disponibles dans chaque Kit de développement logiciel (SDK)

Les tableaux suivants indiquent quelles fonctionnalités sont disponibles dans chaque langue. Le 🔄 symbole indique que la fonctionnalité est partiellement implémentée, consultez la colonne de note associée pour plus d’informations. Le ❌ symbole indique que la fonctionnalité n’est pas encore disponible dans cette langue ; si vous souhaitez voir une fonctionnalité implémentée dans une langue, envisagez de contribuer au projet ou d’ouvrir un problème.

Fonctionnalités principales

Services C# Python Java Notes
Invites Pour afficher la liste complète des formats de modèle et de sérialisation pris en charge, reportez-vous aux tableaux ci-dessous.
Fonctions et plug-ins natifs
Plug-ins OpenAPI Java a un exemple illustrant comment charger des plug-ins OpenAPI
Appel automatique de fonction
Ouvrir les journaux de télémétrie 🔄
Crochets et filtres

Formats de modèle d’invite

Lors de la création d’invites, le noyau sémantique fournit un large éventail de langages de modèle qui vous permettent d’incorporer des variables et d’appeler des fonctions. Le tableau suivant indique les langues de modèle prises en charge dans chaque langue.

Formats C# Python Java Notes
Langage de modèle de noyau sémantique
Guidon
Liquid
Jinja2

Formats de sérialisation d’invite

Une fois que vous avez créé une invite, vous pouvez la sérialiser afin qu’elle puisse être stockée ou partagée entre les équipes. Le tableau suivant indique les formats de sérialisation pris en charge dans chaque langue.

Formats C# Python Java Notes
YAML
Prompty

Services IA

Services C# Python Java Notes
Génération de texte Exemple : Text-Davinci-003
Complétion de conversation Exemple : GPT4, Chat-GPT
Incorporations de texte (expérimentales) Exemple : Text-Embeddings-Ada-002
Texte en image (expérimental) Exemple : Dall-E
Image en texte (expérimental) Exemple : Pix2Struct
Texte en audio (expérimental) Exemple : synthèse vocale
Audio à texte (expérimental) Exemple : Chuchoter

Points de terminaison de service IA

Points de terminaison C# Python Java Notes
OpenAI
Azure OpenAI
Autres points de terminaison qui suppoprt OpenAI API Inclut Ollama, LLM Studio, Azure Model-as-a-service, etc.
API d’inférence de visage en hugging 🔄 Bientôt disponible dans Python, tous les scénarios ne sont pas couverts pour .NET

Connecteurs de mémoire (expérimental)

Important

Tous les connecteurs de mémoire existants sont actuellement expérimentaux et sont en cours de développement actif pour améliorer l’expérience de leur utilisation. Pour fournir des commentaires sur la dernière proposition, reportez-vous aux RDR active Search and Memory Connector .

Connecteurs de mémoire C# Python Java Notes
Recherche Azure AI
Chroma
DuckDB
Milvus 🔄
Pinecone
Postgres
Qdrant 🔄
Redis 🔄
Sqlite 🔄
Weaviate