Partilhar via


Linguagens de kernel semântico suportadas

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

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

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

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

Pontos de extremidade de serviço de IA

Pontos finais C# Python Java Notas
OpenAI
Azure OpenAI
Outros endpoints que suppoprt APIs OpenAI Inclui Ollama, LLM Studio, Azure Model-as-a-service, etc.
API de inferência de rosto abraçado 🔄 Em breve no Python, nem todos os cenários são cobertos para .NET

Conectores de memória (experimental)

Importante

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

Conectores de memória C# Python Java Notas
Pesquisa de IA do Azure
Cromo
DuckDB
Milvus 🔄
Pinecone
Postgres
Qdrant 🔄
Redis 🔄
Sqlite 🔄
Tecelagem