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 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.Amazon Connecteur IA pour Amazon AI
Microsoft.SemanticKernel.Connectors.AzureAIInference Connecteur IA pour l’inférence d’IA Azure
Microsoft.SemanticKernel.Connectors.AzureOpenAI Connecteur IA pour Azure OpenAI
Microsoft.SemanticKernel.Connectors.Google Connecteur IA pour les modèles Google (par exemple, Gemini)
Microsoft.SemanticKernel.Connectors.HuggingFace Connecteur IA pour les modèles Visage hugging
Microsoft.SemanticKernel.Connectors.MistralAI Connecteur IA pour les modèles Mistral AI
Microsoft.SemanticKernel.Connectors.Ollama Connecteur IA pour Ollama
Microsoft.SemanticKernel.Connectors.Onnx Connecteur IA pour Onnx
Microsoft.SemanticKernel.Connectors.OpenAI Connecteur IA pour OpenAI
Microsoft.SemanticKernel.Connectors.AzureAISearch Connecteur de magasin de vecteurs pour Recherche d’IA Azure
Microsoft.SemanticKernel.Connectors.CosmosMongoDB Connecteur de magasin de vecteurs pour Azure CosmosDB MongoDB
Microsoft.SemanticKernel.Connectors.CosmosNoSql Connecteur de magasin de vecteurs pour Azure CosmosDB NoSQL
Microsoft.SemanticKernel.Connectors.MongoDB Connecteur de magasin de vecteurs pour MongoDB
Microsoft.SemanticKernel.Connectors.Pinecone Connecteur de magasin de vecteurs pour Pinecone
Microsoft.SemanticKernel.Connectors.Qdrant Connecteur de magasin de vecteurs pour Qdrant
Microsoft.SemanticKernel.Connectors.Redis Connecteur de magasin de vecteurs pour Redis
Microsoft.SemanticKernel.Connectors.SqliteVec Connecteur de magasin de vecteurs pour Sqlite
Microsoft.SemanticKernel.Connectors.Weaviate Connecteur de magasin de vecteurs pour Weaviate
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

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-identityazure-cosmoset (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
Amazon Bedrock
Anthropique
Inférence Azure AI
Azure OpenAI
Google
API d’inférence de visage en hugging
Mistral
Ollama
ONNX
OpenAI
Autres points de terminaison qui prennent en charge les API OpenAI Inclut LLM Studio, etc.

Connecteurs de magasin de vecteurs (expérimental)

Avertissement

La fonctionnalité de magasin de vecteurs du noyau sémantique est en préversion, et des améliorations nécessitant des modifications importantes peuvent encore survenir dans des circonstances limitées avant la version finale.

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.

Connecteurs de magasin de mémoire (hérité)

Important

Les connecteurs du magasin de mémoire sont hérités et ont été remplacés par les connecteurs vector store. Pour plus d’informations, consultez magasins de mémoire hérités.

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