Observação
O acesso a essa página exige autorização. Você pode tentar entrar ou alterar diretórios.
O acesso a essa página exige autorização. Você pode tentar alterar os diretórios.
O Semantic Kernel planeja fornecer suporte aos seguintes idiomas:
- C#
- Python
- Java
Embora a arquitetura geral do kernel seja consistente em todas as linguagens, garantimos que o SDK de cada linguagem siga paradigmas e estilos comuns em cada linguagem 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 | Descrição |
|---|---|
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 básicas para o Kernel Semântico |
Microsoft.SemanticKernel.Connectors.Amazon |
O conector de IA para a IA da Amazon |
Microsoft.SemanticKernel.Connectors.AzureAIInference |
O conector de IA para inferência de IA do Azure |
Microsoft.SemanticKernel.Connectors.AzureOpenAI |
O conector de IA do Azure OpenAI |
Microsoft.SemanticKernel.Connectors.Google |
O conector de IA para modelos do Google (por exemplo, Gemini) |
Microsoft.SemanticKernel.Connectors.HuggingFace |
O conector de IA para modelos de Detecção Facial |
Microsoft.SemanticKernel.Connectors.MistralAI |
O conector de IA para modelos de IA do Mistral |
Microsoft.SemanticKernel.Connectors.Ollama |
O conector de IA para Ollama |
Microsoft.SemanticKernel.Connectors.Onnx |
O conector de IA para Onnx |
Microsoft.SemanticKernel.Connectors.OpenAI |
O conector de IA para OpenAI |
Microsoft.SemanticKernel.Connectors.AzureAISearch |
O conector do repositório de vetores para o Azure AI Search |
Microsoft.SemanticKernel.Connectors.CosmosMongoDB |
O conector do repositório de vetores para o MongoDB do Azure CosmosDB |
Microsoft.SemanticKernel.Connectors.CosmosNoSql |
O conector do repositório de vetores para o NoSQL do Azure CosmosDB |
Microsoft.SemanticKernel.Connectors.MongoDB |
O conector do repositório de vetores para MongoDB |
Microsoft.SemanticKernel.Connectors.Pinecone |
O conector do repositório de vetores para Pinecone |
Microsoft.SemanticKernel.Connectors.Qdrant |
O conector do repositório de vetores para Qdrant |
Microsoft.SemanticKernel.Connectors.Redis |
O conector do repositório de vetores para Redis |
Microsoft.SemanticKernel.Connectors.SqliteVec |
O conector do repositório de vetores para Sqlite |
Microsoft.SemanticKernel.Connectors.Weaviate |
O conector do repositório de vetores para Weaviate |
Microsoft.SemanticKernel.Plugins.OpenApi (Experimental) |
Permite o carregamento de plug-ins a partir de especificações OpenAPI |
Microsoft.SemanticKernel.PromptTemplates.Handlebars |
Permite o uso de modelos de Handlebars 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 da API do Assistente |
Para instalar qualquer um desses pacotes, você pode usar o seguinte comando:
dotnet add package <package-name>
Pacotes do Python
Em Python, há um único pacote que inclui tudo o que você precisa para começar a usar o Semantic Kernel. Para instalar o pacote, você pode usar o seguinte comando:
pip install semantic-kernel
No PyPI , os Provides-Extra extras adicionais que você pode instalar também estão listados e, quando usados, instalarão os pacotes necessários para usar o SK com esse conector ou serviço específico, você pode instalá-los com a sintaxe de colchetes, por exemplo:
pip install semantic-kernel[azure]
Isso instalará o Semantic Kernel, bem como versões testadas específicas de: azure-ai-inference, azure-search-documents, azure-core, azure-identityazure-cosmos , e msgraph-sdk (e quaisquer dependências desses pacotes). Da mesma forma, o extra hugging_face instalará transformers e sentence-transformers.
Pacotes Java
Para Java, o Semantic Kernel tem os seguintes pacotes; todos estão no ID do grupo e com.microsoft.semantic-kernelpodem ser importados do maven.
<dependency>
<groupId>com.microsoft.semantic-kernel</groupId>
<artifactId>semantickernel-api</artifactId>
</dependency>
É fornecida uma lista de materiais 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 de materiais 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 de um projeto Maven. -
semantickernel-aiservices-openai–Fornece um conector que pode ser usado para interagir com a API OpenAI.
Abaixo está um exemplo de XML POM 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ê quiser ver um recurso implementado em um idioma, considere contribuir para o projeto ou abrir um problema.
Principais funcionalidades
| Serviços | C# | Python | Java | Observações |
|---|---|---|---|---|
| Prompts | ✅ | ✅ | ✅ | Para ver a lista completa de formatos de modelo e serialização com suporte, consulte as tabelas abaixo |
| Funções e plug-ins nativos | ✅ | ✅ | ✅ | |
| Plug-ins OpenAPI | ✅ | ✅ | ✅ | Java tem um exemplo demonstrando como carregar plug-ins OpenAPI |
| Chamada automática de função | ✅ | ✅ | ✅ | |
| Abrir logs de telemetria | ✅ | ✅ | ❌ | |
| Ganchos e filtros | ✅ | ✅ | ✅ |
Formatos de modelo de prompt
Ao criar prompts, o Semantic Kernel fornece uma variedade de linguagens de modelo que permitem inserir variáveis e invocar funções. A tabela a seguir mostra quais linguagens de modelo são suportadas em cada linguagem.
| Formatos | C# | Python | Java | Observações |
|---|---|---|---|---|
| Linguagem de modelo do Kernel Semântico | ✅ | ✅ | ✅ | |
| Guidões | ✅ | ✅ | ✅ | |
| Liquid | ✅ | ❌ | ❌ | |
| Jinja2 | ❌ | ✅ | ❌ |
Formatos de serialização de prompt
Depois de criar um prompt, você pode serializá-lo para que ele possa ser armazenado ou compartilhado entre as equipes. A tabela a seguir mostra quais formatos de serialização têm suporte em cada idioma.
| Formatos | C# | Python | Java | Observações |
|---|---|---|---|---|
| YAML | ✅ | ✅ | ✅ | |
| Pronto | ✅ | ❌ | ❌ |
Modalidades de serviços de IA
| Serviços | C# | Python | Java | Observações |
|---|---|---|---|---|
| Geração de texto | ✅ | ✅ | ✅ | Exemplo: Texto-Davinci-003 |
| Conclusão de Chat. | ✅ | ✅ | ✅ | 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: Sussurro |
Conectores de serviço de IA
| Pontos de extremidade | C# | Python | Java | Observações |
|---|---|---|---|---|
| Amazon Bedrock | ✅ | ✅ | ❌ | |
| Antrópico | ✅ | ✅ | ❌ | |
| Inferência de IA do Azure | ✅ | ✅ | ❌ | |
| OpenAI do Azure | ✅ | ✅ | ✅ | |
| ✅ | ✅ | ✅ | ||
| Abraçando a API de Inferência Facial | ✅ | ✅ | ❌ | |
| Mistral | ✅ | ✅ | ❌ | |
| Ollama | ✅ | ✅ | ❌ | |
| ONNX | ✅ | ✅ | ❌ | |
| OpenAI | ✅ | ✅ | ✅ | |
| Outros pontos de extremidade que dão suporte a APIs OpenAI | ✅ | ✅ | ✅ | Inclui o LLM Studio etc. |
Conectores de armazenamento de vetores (experimental)
Aviso
A funcionalidade do Repositório de Vetores do Kernel Semântico está em versão prévia, e melhorias que exigem mudanças radicais ainda podem ocorrer em circunstâncias limitadas antes do lançamento.
Para obter a lista de conectores de repositório de vetores prontos para uso e o suporte de idioma para cada um, consulte conectores prontos para uso.
Conectores do Repositório de Memória (Herdado)
Importante
Os conectores do Repositório de Memória são herdados e foram substituídos pelos conectores do Vector Store. Para obter mais informações, consulte Repositórios de Memória Herdados.
| Conectores de memória | C# | Python | Java | Observações |
|---|---|---|---|---|
| Pesquisa de IA do Azure | ✅ | ✅ | ✅ | |
| Chroma | ✅ | ✅ | ❌ | |
| DuckDB | ✅ | ❌ | ❌ | |
| Milvus | ✅ | ✅ | ❌ | |
| Pinecone | ✅ | ✅ | ❌ | |
| Postgres | ✅ | ✅ | ❌ | |
| Qdrant | ✅ | ✅ | ❌ | |
| Redis | ✅ | ✅ | ❌ | |
| Sqlite | ✅ | ❌ | 🔄 | |
| Weaviate | ✅ | ✅ | ❌ |