Condividi tramite


Linguaggi del kernel semantico supportati

Il kernel semantico prevede di fornire supporto per i linguaggi seguenti:

  • C#
  • Python
  • Java

Anche se l'architettura complessiva del kernel è coerente in tutti i linguaggi, abbiamo verificato che l'SDK per ogni linguaggio segua paradigmi e stili comuni in ogni linguaggio per renderlo nativo e facile da usare.

Pacchetti C#

In C# sono disponibili diversi pacchetti che consentono di assicurarsi di dover importare solo le funzionalità necessarie per il progetto. La tabella seguente illustra i pacchetti disponibili in C#.

Nome pacchetto Descrizione
Microsoft.SemanticKernel Pacchetto principale che include tutti gli elementi da iniziare
Microsoft.SemanticKernel.Core Pacchetto principale che fornisce implementazioni per Microsoft.SemanticKernel.Abstractions
Microsoft.SemanticKernel.Abstractions Astrazioni di base per il kernel semantico
Microsoft.SemanticKernel.Connectors.Amazon Connettore di intelligenza artificiale per Amazon AI
Microsoft.SemanticKernel.Connectors.AzureAIInference Connettore di intelligenza artificiale per l'inferenza di Intelligenza artificiale di Azure
Microsoft.SemanticKernel.Connectors.AzureOpenAI Connettore di intelligenza artificiale per Azure OpenAI
Microsoft.SemanticKernel.Connectors.Google Connettore di intelligenza artificiale per i modelli Google (ad esempio, Gemini)
Microsoft.SemanticKernel.Connectors.HuggingFace Connettore di intelligenza artificiale per i modelli Hugging Face
Microsoft.SemanticKernel.Connectors.MistralAI Connettore di intelligenza artificiale per i modelli di intelligenza artificiale mistrale
Microsoft.SemanticKernel.Connectors.Ollama Connettore di intelligenza artificiale per Ollama
Microsoft.SemanticKernel.Connectors.Onnx Connettore di intelligenza artificiale per Onnx
Microsoft.SemanticKernel.Connectors.OpenAI Connettore di intelligenza artificiale per OpenAI
Microsoft.SemanticKernel.Connectors.AzureAISearch Connettore dell'archivio vettoriale per AzureAISearch
Microsoft.SemanticKernel.Connectors.AzureCosmosDBMongoDB Connettore dell'archivio vettoriale per AzureCosmosDBMongoDB
Microsoft.SemanticKernel.Connectors.AzureCosmosDBNoSQL Connettore dell'archivio vettoriale per AzureAISearch
Microsoft.SemanticKernel.Connectors.MongoDB Connettore dell'archivio vettoriale per MongoDB
Microsoft.SemanticKernel.Connectors.Pinecone Connettore dell'archivio vettoriale per Pinecone
Microsoft.SemanticKernel.Connectors.Qdrant Connettore dell'archivio vettoriale per Qdrant
Microsoft.SemanticKernel.Connectors.Redis Connettore dell'archivio vettoriale per Redis
Microsoft.SemanticKernel.Connectors.Sqlite Connettore dell'archivio vettoriale per Sqlite
Microsoft.SemanticKernel.Connectors.Weaviate Connettore dell'archivio vettoriale per Weaviate
Microsoft.SemanticKernel.Plugins.OpenApi (Sperimentale) Abilita il caricamento di plug-in dalle specifiche OpenAPI
Microsoft.SemanticKernel.PromptTemplates.Handlebars Abilita l'uso dei modelli di handlebars per le richieste
Microsoft.SemanticKernel.Yaml Fornisce supporto per la serializzazione dei prompt tramite file YAML
Microsoft.SemanticKernel.Prompty Fornisce supporto per la serializzazione delle richieste tramite i file Prompty
Microsoft.SemanticKernel.Agents.Abstractions Fornisce astrazioni per la creazione di agenti
Microsoft.SemanticKernel.Agents.OpenAI Fornisce supporto per gli agenti DELL'API Assistente

Per installare uno di questi pacchetti, è possibile usare il comando seguente:

dotnet add package <package-name>

Pacchetti Python

In Python è disponibile un singolo pacchetto che include tutti gli elementi necessari per iniziare a usare il kernel semantico. Per installare il pacchetto, è possibile usare il comando seguente:

pip install semantic-kernel

In PyPI sotto Provides-Extra gli altri componenti aggiuntivi che è possibile installare sono elencati anche e quando vengono usati per installare i pacchetti necessari per l'uso di SK con tale connettore o servizio specifico, è possibile installarli con la sintassi tra parentesi quadre, ad esempio:

pip install semantic-kernel[azure]

Verrà installato il kernel semantico, nonché versioni testate specifiche di: azure-ai-inference, azure-search-documents, azure-coreazure-identity, azure-cosmos e msgraph-sdk (e tutte le dipendenze di tali pacchetti). Analogamente, il componente aggiuntivo hugging_face installerà transformers e sentence-transformers.

Pacchetti Java

Per Java, Il kernel semantico include i pacchetti seguenti; tutti sono inclusi nell'ID com.microsoft.semantic-kernelgruppo e possono essere importati da maven.

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

Viene fornito un bom che può essere usato per definire le versioni di tutti i pacchetti semantici del kernel.

    <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 : distinta base del progetto Maven che può essere usata per definire le versioni di tutti i pacchetti semantici del kernel.
  • semantickernel-api : pacchetto che definisce l'API pubblica di base per il kernel semantico per un progetto Maven.
  • semantickernel-aiservices-openai –Fornisce un connettore che può essere usato per interagire con l'API OpenAI.

Di seguito è riportato un esempio di XML POM per un progetto semplice che usa 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>

Funzionalità disponibili in ogni SDK

Le tabelle seguenti illustrano le funzionalità disponibili in ogni lingua. Il 🔄 simbolo indica che la funzionalità è parzialmente implementata, vedere la colonna nota associata per altri dettagli. Il ❌ simbolo indica che la funzionalità non è ancora disponibile in tale lingua. Se si vuole visualizzare una funzionalità implementata in una lingua, è consigliabile contribuire al progetto o aprire un problema.

Funzionalità principali

Servizi C# Python Java Note
Prompt Per visualizzare l'elenco completo dei formati di modello e serializzazione supportati, vedere le tabelle seguenti
Funzioni native e plug-in
Plug-in OpenAPI Java ha un esempio che illustra come caricare plug-in OpenAPI
Chiamata automatica di funzioni
Aprire i log di telemetria
Hook e filtri

Formati dei modelli di richiesta

Quando si creano richieste, il kernel semantico offre un'ampia gamma di linguaggi modello che consentono di incorporare variabili e richiamare funzioni. Nella tabella seguente vengono illustrate le lingue del modello supportate in ogni lingua.

Formati C# Python Java Note
Linguaggio del modello del kernel semantico
Manubrio
Liquid
Jinja2

Formati di serializzazione prompt

Dopo aver creato un prompt, è possibile serializzarlo in modo che possa essere archiviato o condiviso tra team. Nella tabella seguente vengono illustrati i formati di serializzazione supportati in ogni lingua.

Formati C# Python Java Note
YAML
Richiesta

Modalità dei servizi di intelligenza artificiale

Servizi C# Python Java Note
Generazione di testo Esempio: Text-Davinci-003
Completamento chat Esempio: GPT4, Chat-GPT
Incorporamenti di testo (sperimentale) Esempio: Text-Embeddings-Ada-002
Testo in immagine (sperimentale) Esempio: Dall-E
Da immagine a testo (sperimentale) Esempio: Pix2Struct
Da testo a audio (sperimentale) Esempio: Sintesi vocale
Audio in testo (sperimentale) Esempio: Whisper

Connettori del servizio di intelligenza artificiale

Endpoint C# Python Java Note
Amazon Bedrock
Anthropic
Inferenza AI di Azure
OpenAI di Azure
Google
Hugging Face Inference API
Mistral
Ollama
ONNX
OpenAI
Altri endpoint che supportano le API OpenAI Include LLM Studio e così via.

Connettori dell'archivio vettoriali (sperimentale)

Avvertimento

La funzionalità di store vettoriale del Semantic Kernel è in anteprima e i miglioramenti che richiedono cambiamenti significativi possono verificarsi ancora in circostanze limitate prima del rilascio.

Per l'elenco dei connettori dell'archivio vettoriale predefinito e del supporto della lingua per ognuno, fare riferimento ai connettori predefiniti.

Connettori dell'archivio memoria (legacy)

Importante

I connettori dell'archivio memoria sono legacy e sono stati sostituiti dai connettori vector store. Per altre informazioni, vedere Archivi di memoria legacy.

Connettori di memoria C# Python Java Note
Azure AI Search
Chroma
DuckDB
Milvus
Pinecone
Postgres
Qdrant
Redis
SQLite 🔄
Weaviate