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 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-core
azure-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-kernel
gruppo 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 | ✅ | ✅ | ❌ |