Compartilhar via


Idiomas de kernel semântico suportados

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
Google
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