Partilhar via


Resumir texto usando o aplicativo de bate-papo AI com .NET

Comece a usar a IA criando um aplicativo de bate-papo de console .NET 8.0 simples para resumir o texto. O aplicativo é executado localmente e usa o modelo OpenAI gpt-3.5-turbo . Siga estas etapas para obter acesso ao OpenAI e aprender a usar o Kernel Semântico.

Pré-requisitos

  • SDK do .NET 8.0 - Instale o SDK do .NET 8.0.
  • Uma chave de API do OpenAI para que você possa executar este exemplo.
  • No Windows, o PowerShell v7+ é necessário. Para validar sua versão, execute pwsh em um terminal. Ele deve retornar a versão atual. Se retornar um erro, execute o seguinte comando: dotnet tool update --global PowerShell.

Comece a usar a IA criando um aplicativo de bate-papo de console .NET 8.0 simples para resumir o texto. O aplicativo é executado localmente e se conecta ao modelo OpenAI gpt-35-turbo implantado no Azure OpenAI. Siga estas etapas para provisionar o serviço Azure OpenAI e saiba como usar o Kernel Semântico.

Pré-requisitos

  • SDK do .NET 8 - Instale o SDK do .NET 8.
  • Uma assinatura do Azure - Crie uma gratuitamente.
  • CLI do Azure Developer - Instale ou atualize a CLI do Azure Developer.
  • Acesso ao serviço Azure OpenAI.
  • No Windows, o PowerShell v7+ é necessário. Para validar sua versão, execute pwsh em um terminal. Ele deve retornar a versão atual. Se retornar um erro, execute o seguinte comando: dotnet tool update --global PowerShell.

Obter o projeto de exemplo

Clone o repositório GitHub que contém os aplicativos de exemplo para todos os inícios rápidos:

git clone https://github.com/dotnet/ai-samples.git

Criar o serviço Azure OpenAI

O repositório GitHub de exemplo é estruturado como um modelo de CLI (azd) do Desenvolvedor do Azure, que azd pode ser usado para provisionar o serviço e o modelo do Azure OpenAI para você.

  1. Em um terminal ou prompt de comando, navegue até o diretório src\quickstarts\azure-openai do repositório de exemplo.

  2. Execute o azd up comando para provisionar os recursos do Azure OpenAI. Pode levar vários minutos para criar o serviço Azure OpenAI e implantar o modelo.

    azd up
    

    azd também configura os segredos de usuário necessários para o aplicativo de exemplo, como a chave de acesso OpenAI.

    Nota

    Se você encontrar um erro durante a azd up implantação, visite a seção de solução de problemas .

Experimente a amostra de benefícios para caminhadas

  1. Em um terminal ou prompt de comando, navegue até o openai\01-HikeBenefitsSummary diretório.

  2. Execute os seguintes comandos para configurar sua chave de API OpenAI como um segredo para o aplicativo de exemplo:

    dotnet user-secrets init
    dotnet user-secrets set OpenAIKey <your-openai-key>
    
  3. Use o dotnet run comando para executar o aplicativo:

    dotnet run
    
  1. Em um terminal ou prompt de comando, navegue até o azure-openai\01-HikeBenefitsSummary diretório.

  2. Use o dotnet run comando para executar o aplicativo:

    dotnet run
    

    Gorjeta

    Se você receber uma mensagem de erro, os recursos do Azure OpenAI podem não ter concluído a implantação. Aguarde alguns minutos e tente novamente.

Explore o código

O aplicativo usa o Microsoft.SemanticKernel pacote para enviar e receber solicitações para o serviço OpenAI.

O arquivo Program.cs contém todo o código do aplicativo. As primeiras linhas de código definem valores de configuração e obtêm a chave OpenAI que foi definida anteriormente usando o dotnet user-secrets comando.

var config = new ConfigurationBuilder().AddUserSecrets<Program>().Build();
string model = "gpt-3.5-turbo";
string key = config["OpenAIKey"];

A Kernel turma facilita as solicitações e respostas e registra um OpenAIChatCompletion serviço.

// Create a Kernel containing the OpenAI Chat Completion Service
Kernel kernel = Kernel.CreateBuilder()
    .AddOpenAIChatCompletion(model, key)
    .Build();

O aplicativo usa o Microsoft.SemanticKernel pacote para enviar e receber solicitações para o serviço Azure OpenAI.

O arquivo Program.cs contém todo o código do aplicativo. As primeiras linhas de código carregam segredos e valores de configuração que foram definidos no dotnet user-secrets para você durante o provisionamento do aplicativo.

// Retrieve the local secrets saved during the Azure deployment
var config = new ConfigurationBuilder().AddUserSecrets<Program>().Build();
string endpoint = config["AZURE_OPENAI_ENDPOINT"];
string deployment = config["AZURE_OPENAI_GPT_NAME"];
string key = config["AZURE_OPENAI_KEY"];

A Kernel turma facilita as solicitações e respostas e registra um OpenAIChatCompletion serviço.

// Create a Kernel containing the Azure OpenAI Chat Completion Service
Kernel kernel = Kernel.CreateBuilder()
    .AddAzureOpenAIChatCompletion(deployment, endpoint, key)
    .Build();

Depois que o Kernel é criado, o código do aplicativo lê o conteúdo do benefits.md arquivo e o usa para criar um prompt modelo for. O prompt instrui o modelo a resumir o conteúdo do texto do arquivo.

// Create and print out the prompt
string prompt = $"""
    Please summarize the the following text in 20 words or less:
    {File.ReadAllText("benefits.md")}
    """;
Console.WriteLine($"user >>> {prompt}");

A InvokePromptAsync função envia o prompt para o modelo para gerar uma resposta.

// Submit the prompt and print out the response
string response = await kernel.InvokePromptAsync<string>(
    prompt,
    new(new OpenAIPromptExecutionSettings() 
        { 
            MaxTokens = 400 
        })
    );
Console.WriteLine($"assistant >>> {response}");

Personalize o conteúdo de texto do arquivo ou o comprimento do resumo para ver as diferenças nas respostas.

Clean up resources (Limpar recursos)

Quando você não precisar mais do aplicativo ou recursos de exemplo, remova a implantação correspondente e todos os recursos.

azd down

Resolver problemas

No Windows, você pode receber as seguintes mensagens de erro após a execução azd up:

postprovision.ps1 não está assinado digitalmente. O script não será executado no sistema

O script postprovision.ps1 é executado para definir os segredos de usuário do .NET usados no aplicativo. Para evitar esse erro, execute o seguinte comando do PowerShell:

Set-ExecutionPolicy -Scope Process -ExecutionPolicy Bypass

Em seguida, execute novamente o azd up comando.

Outro erro possível:

'pwsh' não é reconhecido como um comando interno ou externo, programa operável ou ficheiro batch. AVISO: O gancho 'postprovision' falhou com o código de saída: '1', Caminho: '.\infra\post-script\postprovision.ps1'. : código de saída: 1 A execução continuará desde que ContinueOnError tenha sido definido como true.

O script postprovision.ps1 é executado para definir os segredos de usuário do .NET usados no aplicativo. Para evitar esse erro, execute manualmente o script usando o seguinte comando do PowerShell:

.\infra\post-script\postprovision.ps1

Os aplicativos .NET AI agora têm os segredos do usuário configurados e podem ser testados.

Próximos passos