Remarque
L’accès à cette page nécessite une autorisation. Vous pouvez essayer de vous connecter ou de modifier des répertoires.
L’accès à cette page nécessite une autorisation. Vous pouvez essayer de modifier des répertoires.
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 | ✅ | ✅ | ✅ | |
| ✅ | ✅ | ✅ | ||
| 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 | ✅ | ✅ | ❌ |