Nota
O acesso a esta página requer autorização. Podes tentar iniciar sessão ou mudar de diretório.
O acesso a esta página requer autorização. Podes tentar mudar de diretório.
O Semantic Kernel planeja fornecer suporte para os seguintes idiomas:
- C#
- Python
- Java
Embora a arquitetura geral do kernel seja consistente em todos os idiomas, garantimos que o SDK para cada idioma siga paradigmas e estilos comuns em cada idioma para torná-lo nativo e fácil de usar.
Pacotes C#
Em C#, há vários pacotes para ajudar a garantir que você só precise importar a funcionalidade necessária para seu projeto. A tabela a seguir mostra os pacotes disponíveis em C#.
| Nome do pacote | Description |
|---|---|
Microsoft.SemanticKernel |
O pacote principal que inclui tudo para começar |
Microsoft.SemanticKernel.Core |
O pacote principal que fornece implementações para Microsoft.SemanticKernel.Abstractions |
Microsoft.SemanticKernel.Abstractions |
As abstrações de base para o Kernel Semântico |
Microsoft.SemanticKernel.Connectors.Amazon |
O conector de IA para Amazon AI |
Microsoft.SemanticKernel.Connectors.AzureAIInference |
O conector de IA para o Azure AI Inference |
Microsoft.SemanticKernel.Connectors.AzureOpenAI |
O conector AI para o Azure OpenAI |
Microsoft.SemanticKernel.Connectors.Google |
O conector AI para modelos do Google (por exemplo, Gemini) |
Microsoft.SemanticKernel.Connectors.HuggingFace |
O conector AI para modelos Hugging Face |
Microsoft.SemanticKernel.Connectors.MistralAI |
O conector AI para modelos Mistral AI |
Microsoft.SemanticKernel.Connectors.Ollama |
O conector AI para Ollama |
Microsoft.SemanticKernel.Connectors.Onnx |
O conector AI para Onnx |
Microsoft.SemanticKernel.Connectors.OpenAI |
O conector AI para OpenAI |
Microsoft.SemanticKernel.Connectors.AzureAISearch |
O conector de armazenamento vetorial para o Azure AI Search |
Microsoft.SemanticKernel.Connectors.CosmosMongoDB |
O conector de armazenamento vetorial para o Azure CosmosDB MongoDB |
Microsoft.SemanticKernel.Connectors.CosmosNoSql |
O conector de armazenamento vetorial para o Azure CosmosDB NoSQL |
Microsoft.SemanticKernel.Connectors.MongoDB |
O conector de armazenamento vetorial para MongoDB |
Microsoft.SemanticKernel.Connectors.Pinecone |
O conector de armazenamento vetorial para Pinecone |
Microsoft.SemanticKernel.Connectors.Qdrant |
O conector de armazenamento vetorial para Qdrant |
Microsoft.SemanticKernel.Connectors.Redis |
O conector de armazenamento vetorial para Redis |
Microsoft.SemanticKernel.Connectors.SqliteVec |
O conector de armazenamento de vetores para Sqlite |
Microsoft.SemanticKernel.Connectors.Weaviate |
O conector de armazenamento vetorial para Weaviate |
Microsoft.SemanticKernel.Plugins.OpenApi (Experimental) |
Permite carregar plugins a partir das especificações OpenAPI |
Microsoft.SemanticKernel.PromptTemplates.Handlebars |
Permite o uso de modelos de guidão para prompts |
Microsoft.SemanticKernel.Yaml |
Fornece suporte para serialização de prompts usando arquivos YAML |
Microsoft.SemanticKernel.Prompty |
Fornece suporte para serialização de prompts usando arquivos Prompty |
Microsoft.SemanticKernel.Agents.Abstractions |
Fornece abstrações para a criação de agentes |
Microsoft.SemanticKernel.Agents.OpenAI |
Fornece suporte para agentes de API do Assistente |
Para instalar qualquer um desses pacotes, você pode usar o seguinte comando:
dotnet add package <package-name>
Pacotes de Python
Em Python, há um único pacote que inclui tudo o que você precisa para começar a usar o Kernel Semântico. Para instalar o pacote, você pode usar o seguinte comando:
pip install semantic-kernel
No PyPI sob Provides-Extra os extras adicionais que você pode instalar também estão listados e quando usado que irá instalar os pacotes necessários para usar SK com esse conector ou serviço específico, você pode instalar aqueles com a sintaxe de colchetes, por exemplo:
pip install semantic-kernel[azure]
Isso instalará o Kernel Semântico, bem como versões testadas específicas de: azure-ai-inference, azure-search-documents, azure-core, azure-identityazure-cosmose msgraph-sdk (e quaisquer dependências desses pacotes). Da mesma forma, o extra hugging_face irá instalar transformers e sentence-transformers.
Pacotes Java
Para Java, o Semantic Kernel tem os seguintes pacotes; todos estão sob o grupo Id com.microsoft.semantic-kernel, e podem ser importados do maven.
<dependency>
<groupId>com.microsoft.semantic-kernel</groupId>
<artifactId>semantickernel-api</artifactId>
</dependency>
É fornecida uma lista técnica que pode ser usada para definir as versões de todos os pacotes do Kernel Semântico.
<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– Uma lista técnica do projeto Maven que pode ser usada para definir as versões de todos os pacotes do Kernel Semântico. -
semantickernel-api– Pacote que define a API pública principal para o Kernel Semântico para um projeto Maven. -
semantickernel-aiservices-openai–Fornece um conector que pode ser usado para interagir com a API OpenAI.
Abaixo está um exemplo de POM XML para um projeto simples que 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>
Recursos disponíveis em cada SDK
As tabelas a seguir mostram quais recursos estão disponíveis em cada idioma. O 🔄 símbolo indica que o recurso está parcialmente implementado, consulte a coluna de notas associada para obter mais detalhes. O ❌ símbolo indica que o recurso ainda não está disponível nesse idioma, se você gostaria de ver um recurso implementado em um idioma, considere contribuir para o projeto ou abrir um problema.
Capacidades principais
| Serviços | C# | Python | Java | Notas |
|---|---|---|---|---|
| Pedidos | ✅ | ✅ | ✅ | Para ver a lista completa de modelos suportados e formatos de serialização, consulte as tabelas abaixo |
| Funções nativas e plugins | ✅ | ✅ | ✅ | |
| Plugins OpenAPI | ✅ | ✅ | ✅ | Java tem um exemplo demonstrando como carregar plugins OpenAPI |
| Chamada automática de função | ✅ | ✅ | ✅ | |
| Abrir logs de telemetria | ✅ | ✅ | ❌ | |
| Ganchos e filtros | ✅ | ✅ | ✅ |
Avisar formatos de modelo
Ao criar prompts, o Semantic Kernel fornece uma variedade de linguagens de modelo que permitem incorporar variáveis e invocar funções. A tabela a seguir mostra quais idiomas de modelo são suportados em cada idioma.
| Formatos | C# | Python | Java | Notas |
|---|---|---|---|---|
| Linguagem de modelo do Kernel Semântico | ✅ | ✅ | ✅ | |
| Handlebars | ✅ | ✅ | ✅ | |
| Liquid | ✅ | ❌ | ❌ | |
| Jinja2 | ❌ | ✅ | ❌ |
Formatos de serialização de prompt
Depois de criar um prompt, você pode serializá-lo para que possa ser armazenado ou compartilhado entre as equipes. A tabela a seguir mostra quais formatos de serialização são suportados em cada idioma.
| Formatos | C# | Python | Java | Notas |
|---|---|---|---|---|
| YAML | ✅ | ✅ | ✅ | |
| Prontidão | ✅ | ❌ | ❌ |
Modalidades de Serviços de IA
| Serviços | C# | Python | Java | Notas |
|---|---|---|---|---|
| Geração de texto | ✅ | ✅ | ✅ | Exemplo: Text-Davinci-003 |
| Conclusão do bate-papo | ✅ | ✅ | ✅ | Exemplo: GPT4, Chat-GPT |
| Incorporações de texto (experimental) | ✅ | ✅ | ✅ | Exemplo: text-embeddings-ada-002 |
| Texto para Imagem (Experimental) | ✅ | ✅ | ❌ | Exemplo: Dall-E |
| Imagem para Texto (Experimental) | ✅ | ❌ | ❌ | Exemplo: Pix2Struct |
| Texto para áudio (Experimental) | ✅ | ✅ | ❌ | Exemplo: conversão de texto em fala |
| Áudio para Texto (Experimental) | ✅ | ✅ | ❌ | Exemplo: Whisper |
Conectores de serviço AI
| Pontos finais | C# | Python | Java | Notas |
|---|---|---|---|---|
| Substrato rochoso amazônico | ✅ | ✅ | ❌ | |
| Antrópico | ✅ | ✅ | ❌ | |
| Inferência de IA do Azure | ✅ | ✅ | ❌ | |
| Azure OpenAI | ✅ | ✅ | ✅ | |
| ✅ | ✅ | ✅ | ||
| API de inferência de rosto abraçado | ✅ | ✅ | ❌ | |
| Mistral | ✅ | ✅ | ❌ | |
| Ollama | ✅ | ✅ | ❌ | |
| ONNX | ✅ | ✅ | ❌ | |
| OpenAI | ✅ | ✅ | ✅ | |
| Outros endpoints que suportam APIs OpenAI | ✅ | ✅ | ✅ | Inclui LLM Studio, etc. |
Conectores de armazenamento vetorial (experimental)
Advertência
A funcionalidade Semantic Kernel Vector Store está em fase de testes, e melhorias que exigem alterações significativas ainda podem ocorrer em circunstâncias limitadas antes do lançamento oficial.
Para obter a lista de conectores de armazenamento vetorial prontos para uso e o suporte a idiomas para cada um, consulte Conectores prontos para uso.
Conectores de armazenamento de memória (legado)
Importante
Os conectores de armazenamento de memória são herdados e foram substituídos por conectores de armazenamento vetorial. Para obter mais informações, consulte Armazenamentos de memória herdados.
| Conectores de memória | C# | Python | Java | Notas |
|---|---|---|---|---|
| Pesquisa de IA do Azure | ✅ | ✅ | ✅ | |
| Cromo | ✅ | ✅ | ❌ | |
| DuckDB | ✅ | ❌ | ❌ | |
| Milvus | ✅ | ✅ | ❌ | |
| Pinecone | ✅ | ✅ | ❌ | |
| Postgres | ✅ | ✅ | ❌ | |
| Qdrant | ✅ | ✅ | ❌ | |
| Redis | ✅ | ✅ | ❌ | |
| Sqlite | ✅ | ❌ | 🔄 | |
| Tecelagem | ✅ | ✅ | ❌ |