Exercício - Use plugins integrados

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 realizar uma tarefa. Vamos começar!

Preparar o ambiente de desenvolvimento

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

Importante

Você deve ter o Visual Studio Code e o .NET Framework 8.0 instalado para concluir essas etapas. Também pode ser necessário instalar a extensão Visual Studio Code C# Dev Kit.

  1. Abra o Visual Studio Code.

  2. Na seção Visual Studio Code Start , selecione Clone Git Repository.

  3. Na barra de URL, digite 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 encontrar e lembrar, como uma pasta na á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 .

    Deverá ver um ficheiro "Program.cs".

  9. Abra o arquivo Program.cs e atualize as seguintes variáveis com seu nome de implantação dos Serviços OpenAI do Azure, chave de API, 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

    Nota

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

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

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

    Nota

    Uma vez que o plugin ainda está em visualização, você pode precisar adicionar suprimir o aviso usando #pragma warning disable SKEXP0050 na parte superior do arquivo.

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

    Você 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 a partir da 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 plugins e executar funções.

Importante

Certifique-se de não excluir nenhum dos códigos que você escreveu, você precisa dele para os próximos exercícios.