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

Sur PyPI , sous Provides-Extra les extras supplémentaires que vous pouvez installer, sont également répertoriés et lorsqu’ils sont utilisés pour installer les packages nécessaires à l’utilisation de sk avec ce connecteur ou service spécifique, vous pouvez les installer avec la syntaxe entre crochets par exemple :

pip install semantic-kernel[azure]

Cela installe le noyau sémantique, ainsi que des versions testées spécifiques de : azure-ai-inference, , azure-search-documents, azure-core, azure-cosmos azure-identityet (et msgraph-sdk toutes les dépendances de ces packages). De même, l’ajout hugging_face sera installé transformers et sentence-transformers.

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 de fonction automatique
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

Modalités des services IA

Services C# Python Java Notes
Génération de texte Exemple : Text-Davinci-003
Fin de la 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

Connecteurs de service AI

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 seront remplacés par les connecteurs Vector Store. Celles-ci fournissent davantage de fonctionnalités via une couche d’abstraction mise à jour.

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

Connecteurs de magasin de vecteurs (expérimental)

Important

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

Pour obtenir la liste des connecteurs de magasin de vecteurs sortants et la prise en charge du langage pour chacun d’eux, reportez-vous aux connecteurs hors cadre.