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