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 SDK disponíveis

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.OpenAI O conector para OpenAI
Microsoft.SemanticKernel.Connectors.HuggingFace O conector para modelos Hugging Face
Microsoft.SemanticKernel.Connectors.Google O conector para modelos do Google (por exemplo, Gemini)
Microsoft.SemanticKernel.Connectors.MistralAI O conector para modelos Mistral AI
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

Existem outros pacotes disponíveis (por exemplo, os conectores de memória), mas eles ainda são experimentais e ainda não são recomendados para uso em produção.

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
OpenAI
OpenAI do Azure
Outros endpoints que oferecem suporte às APIs OpenAI Inclui Ollama, LLM Studio, Azure Model-as-a-service, etc.
Abraçando a API de Inferência Facial 🔄 Em breve no Python, nem todos os cenários são cobertos para o .NET

Conectores de memória (experimental)

Importante

Todos os conectores de memória existentes são atualmente experimentais e serão substituídos por conectores do Vector Store. Eles fornecerão mais funcionalidade por meio de uma camada de abstração atualizada.

Conectores de memória C# Python Java Observações
Azure AI Search
Chroma
DuckDB
Milvus 🔄
Pinecone
Postgres
Qdrant 🔄
Redis 🔄
Sqlite 🔄
Weaviate

Conectores de armazenamento de vetores (experimental)

Importante

Todos os conectores existentes do Vector Store são atualmente experimentais e estão passando por desenvolvimento ativo para melhorar a experiência de usá-los. Para fornecer comentários sobre a proposta mais recente, consulte os ADRs ativos do conector de pesquisa e memória.

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.