Nota
L'accesso a questa pagina richiede l'autorizzazione. È possibile provare ad accedere o modificare le directory.
L'accesso a questa pagina richiede l'autorizzazione. È possibile provare a modificare le directory.
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 Ricerca di intelligenza artificiale di Azure |
Microsoft.SemanticKernel.Connectors.CosmosMongoDB |
Connettore dell'archivio vettoriale per MongoDB di Azure CosmosDB |
Microsoft.SemanticKernel.Connectors.CosmosNoSql |
Connettore dell'archivio vettoriale per Azure CosmosDB NoSQL |
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.SqliteVec |
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 | ✅ | ✅ | ✅ | |
| ✅ | ✅ | ✅ | ||
| 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 | ✅ | ✅ | ❌ |