Exercício – Usar plug-ins internos

Concluído

Para este exercício, você adiciona um plug-in existente ao seu projeto de Kernel Semântico e aprende a usar seu primeiro plug-in para fazer uma tarefa. Vamos começar!

Preparar seu ambiente de desenvolvimento

No caso desses exercícios, um projeto inicial está disponível para você usar. Use as seguintes etapas para configurar o projeto inicial:

Importante

Você deverá ter o Visual Studio Code e o .NET Framework 8.0 instalados para concluir essas etapas. É possível que você também precise instalar a extensão do Kit de Desenvolvimento do C# do Visual Studio Code.

  1. Abra o Visual Studio Code.

  2. Na seção Iniciar do Visual Studio Code, selecione Clonar repositório do Git.

  3. Na barra de URL, insira https://github.com/MicrosoftLearning/MSLearn-Develop-AI-Agents-with-Azure-OpenAI-and-Semantic-Kernel-SDK.git

  4. No Explorador de Arquivos, crie uma nova pasta em um local fácil de localizar e lembrar, como uma pasta em sua Área de Trabalho.

  5. Clique no botão Selecionar como destino do repositório.

    Você precisa estar conectado ao GitHub para clonar o projeto com êxito.

  6. Abra o projeto no Visual Studio Code.

  7. No Explorer, clique com o botão direito do mouse na pasta M02-create-plugins-for-semantic-kernel/M02-Project e clique em Abrir no Terminal Integrado.

  8. Expanda a pasta M02-create-plugins-for-semantic-kernel/M02-Project.

    Você deve ver um arquivo "Program.cs".

  9. Abra o arquivo Program.cs e atualize as seguintes variáveis com o nome de implantação dos Serviços OpenAI do Azure, a chave de API e o ponto de extremidade.

    string yourDeploymentName = "";
    string yourEndpoint = "";
    string yourKey = "";
    

Agora você está pronto para começar o exercício. Boa sorte!

Obter a intenção do usuário

  1. No Terminal Integrado, adicione os Plug-ins do Kernel Semântico. Pacote principal para seu projeto executando o seguinte comando: dotnet add package Microsoft.SemanticKernel.Plugins.Core --version 1.2.0-alpha

    Observação

    Atualmente o pacote é uma versão de pré-lançamento. Você pode querer verificar a versão mais recente https://www.nuget.org/packages/Microsoft.SemanticKernel.Plugins.Core/1.2.0-alpha

  2. Adicione o seguinte código ao seu arquivo Program.cs:

    builder.Plugins.AddFromType<ConversationSummaryPlugin>();
    var kernel = builder.Build();
    
    string input = @"I'm a vegan in search of new recipes. I love spicy food! 
    Can you give me a list of breakfast recipes that are vegan friendly?";
    
    var result = await kernel.InvokeAsync(
        "ConversationSummaryPlugin", 
        "GetConversationActionItems", 
        new() {{ "input", input }});
    
    Console.WriteLine(result);
    

    Nesse código, você importa o ConversationSummaryPlugin do pacote Core.Plugins. Você cria um novo construtor de kernel e adiciona o plug-in ao construtor. O ConversationSummaryPlugin aceita várias ações: GetConversationActionItems, SummarizeConversation e GetConversationTopics.

    Você cria uma cadeia de caracteres com uma conversa de exemplo e, em seguida, chama o plug-in com o nome da função e passa a cadeia de caracteres da conversa. O plug-in retorna um resumo da conversa.

    Observação

    Como o plug-in ainda está em pré-visualização, poderá ser necessário suprimir o aviso usando #pragma warning disable SKEXP0050 na parte superior do arquivo.

  3. Execute o código inserindo dotnet run no terminal.

    Você deverá ver uma resposta semelhante à seguinte saída:

    {
        "actionItems": [
            {
                "owner": "",
                "actionItem": "Provide a list of vegan-friendly spicy breakfast recipes",
                "dueDate": "",
                "status": "Open",
                "notes": ""
            }
        ]
    }
    

    Observe que o plug-in foi capaz de identificar uma intenção simplificada com base na cadeia de caracteres de entrada.

Este exemplo é apenas o começo do que você pode fazer com o SDK do Kernel Semântico. Na próxima unidade, você aprenderá mais maneiras de personalizar plug-ins e executar funções.

Importante

Certifique-se de não excluir nenhum código que você escreveu, pois ele será necessário para os próximos exercícios.