Para C#, você pode instalar o Semantic Kernel do NuGet. A linha de comando é:
dotnet add package Microsoft.SemanticKernel
Para Python, você pode instalar o Semantic Kernel do PyPI. A linha de comando é:
pip install semantic-kernel
É possível que você precise usar pip3
em vez de pip
.
Em Java, você pode compilar o projeto no repositório a partir do wrapper Maven, e isso obterá tudo o que você precisa.
Não importa qual idioma você use, você precisará de uma chave de API, seja do OpenAI ou do Azure OpenAI. Salve a chave de API localmente em um lugar seguro. Você também precisará inserir a chave de API em algum lugar (ela varia de acordo com o idioma) para que o código possa usá-la para chamar LLMs. Se você executar o exemplo de pesquisa do Bing (veja a captura de tela abaixo), também precisará obter uma chave de API do Bing do Azure.
A menos que você tenha um forte interesse em Python ou Java, sugiro que leia e execute os exemplos do notebook C#, que estão atualmente na melhor forma, ou seja, eles funcionam principalmente sem gerar erros e correspondem principalmente à documentação. A inserção da chave de API para estes acontece interativamente no primeiro exemplo.
O repositório tem uma seção sobre aprendizado do Semantic Kernel. Parte do conteúdo referenciado é útil. No entanto, alguns dos títulos não correspondem mais ao conteúdo, e parte do conteúdo está atualmente sem exemplos para idiomas específicos.
IDG
Livro de receitas do kernel semântico
O Semantic Kernel Cookbook, um manual de código aberto focado principalmente na implementação do Semantic Kernel para iniciantes, está disponível em inglês e chinês simplificado. É um complemento interessante para a documentação oficial do Semantic Kernel, escrita por kinfey, um Microsoft Cloud Advocate.
Projeto Miyagi
O Projeto Miyagi é uma amostra de visualização de demonstração “como está” para a pilha Copilot. Ele inclui exemplos de uso para Semantic Kernel, Promptflow, LlamaIndex, LangChain, armazenamentos de vetores (Azure AI Search, CosmosDB Postgres pgvector) e utilitários de imagem generativos, como DreamFusion e ControlNet. O Projeto Miyagi também é interessante como um complemento à documentação oficial do Semantic Kernel.
Projeto Kernel Semântico
Dado o quanto a Microsoft investiu em PCs Copilot e Copilot+, você pensaria que o projeto Semantic Kernel receberia algum sério recursos. Mas não. Em dezembro de 2023, o repositório Semantic Kernel recebeu mais de 100 commits por semana; em junho de 2024, ele recebeu cerca de 30 commits por semana. O código do framework principal parece estar progredindo, especialmente a versão C#, e o código Python e Java parece estar se atualizando, mas a documentação e os exemplos não parecem estar recebendo muito amor, apesar de estarem desatualizados.
Talvez eu esteja vendo um ciclo de desenvolvimento normal para um projeto de código aberto. Houve um grande pico em adições e exclusões de código em maio de 2024, semelhante aos picos em abril e outubro de 2023. É possível que os escritores de documentação e exemplo estivessem esperando o código se estabilizar antes de atualizar suas partes do projeto.
Ou, possivelmente, a Microsoft simplesmente não se importa com o projeto de código aberto Semantic Kernel. Seus esforços internos foram suficientes para lançar muitos Copilots. No que diz respeito ao desenvolvimento externo de aplicativos de IA, eles podem se contentar em deixar LangChain ou LlamaIndex dominarem o ecossistema em vez de empurrar seu próprio Semantic Kernel, contanto que os desenvolvedores usem os serviços Azure ou OpenAI. O tempo dirá.
—
Prós
- Um SDK gratuito de código aberto que permite criar agentes que podem chamar seu código existente.
- Suporta C#, Python e Java.
- Razoavelmente fácil de aprender e usar, especialmente em C#.
- Pode gerar seus próprios planos.
Contras
- Usar planejadores é caro (usa muitos tokens de IA) e introduz atrasos perceptíveis para o usuário.
- A documentação e os exemplos parecem estar desatualizados ou ausentes para Python e Java.
Custo
Código aberto gratuito, licença MIT.
Plataforma
C#, Python e Java.