Integrando o ChatGPT em aplicações .NET 8

O ChatGPT chegou para ficar! É uma ferramenta poderosa para gerar textos conversacionais de forma automática e criativa. A capacidade do ChatGPT de resumir rapidamente as respostas às perguntas é convincente, além de poder realizar análise de sentimentos, classificações, geração de códigos e imagens.

Neste post, vamos apresentar como você pode utilizar o ChatGPT em aplicações .NET com a biblioteca do OpenAI, onde criaremos um chatbot simples para responder a perguntas utilizando os modelos pré-treinados do OpenAI.

Pré-requisitos

Web API

O primeiro passo é criar uma conta no: https://platform.openai.com, onde será necessário inserir um e-mail válido para confirmação:

Em seguida, crie uma API Key e guarde o valor gerado em um arquivo texto:

Feito isso, o primeiro passo é configurar a classe Program.cs:

O método de extensão AddChatGpt() é responsável por registrar o serviço do ChatGPT, e com código gerado em API Keys, cole o valor na chave “ChatGpt:Key” no appsettings.json:

Com o SDK inicializado e registrado, agora é possível utilizar o ChatGPT para gerar conclusões de texto. 

Completions aceita vários parâmetros, incluindo:

  • Prompt: Texto para o qual você deseja gerar as conclusões
  • Model: Modelo de resposta a ser utilizado
  • MaxTokens: Número de conclusões a serem gerados

O consumo de tokens não gera apenas custos, mas também determina o tamanho da resposta. O número máximo padrão de tokens utilizado ​​por solicitação de API é 16, isso inclui o número de tokens consumidos durante o processamento do prompt e a geração da solicitação. Como os tokens correspondem a partes de palavras, isso não deixa muito espaço para uma resposta bem desenvolvida, e definindo um limite de token de 200 é possível gerar espaço suficiente para retornar um parágrafo mais completo. 

O modelo Model.DavinciText (text-davini-003) é utilizado por padrão com o chat.open.ai, porém existem outros disponíveis e a escolha é determinada pelo custo e capacidades, por exemplo:

  • text-davinci-003: Pode realizar qualquer tarefa que os outros modelos possam realizar, geralmente com maior qualidade, produção mais longa e melhor seguimento de instruções. Também suporta a inserção de conclusões no texto.
  • text-curie-001: Mais rápido e de menor custo que o Davinci.
  • text-babbage-001: Capaz de tarefas simples, muito rápidas e de menor custo.
  • text-ada-001: Capaz de tarefas muito simples, geralmente o modelo mais rápido da série GPT-3 e de menor custo.

Testando

Para realizar os testes, execute o endpoint GET /api/sample no Swagger informando a pergunta que gostaria que o ChatGPT respondesse e aguarde a resposta:

Dependendo do tamanho e complexidade da pergunta, o ChatGPT pode demorar alguns segundos para responder, neste caso vale muito a pena considerar a utilização de um Socket (SignalR) para enviar os textos ao frontend ao decorrer que a API responder.

Finalizando

ChatGPT é um modelo de linguagem poderoso que pode ser facilmente integrado ao código C# utilizando o SDK do OpenAI. Com essa integração, você pode aproveitar o poder do aprendizado de máquina para gerar conclusões de texto semelhantes às humanas em suas aplicações .NET.

Existem muitos mais parâmetros disponíveis para controlar os diversos tipos de respostas e adequação do processo de seleção da resposta escolhida, o que faz com que seja reduzido a repetição de tokens resultando em uma economia do consumo à API do ChatGPT.

Os detalhes completos deste exemplo você encontra no meu GitHub: https://github.com/hgmauri/sample-chatgpt

Deixe uma resposta