.NET - Integrando ChatGPT com Web API
Hoje veremos como integrar o ChatGPT com uma Web API na ASP.NET Core. |
O ChatGPT é um chatbot online de inteligência artificial desenvolvido pela OpenAI, lançado em novembro de 2022. O nome "ChatGPT" combina "Chat", referindo-se à sua funcionalidade de chatbot, e "GPT", que significa Generative Pre-trained Transformer.
Ele é capaz de processar e responder a perguntas de forma rápida e eficiente. Isso pode economizar tempo ao procurar informações ou soluções para problemas, evitando a necessidade de pesquisar extensivamente ou esperar por respostas de especialistas humanos.
Neste artigo vamos mostrar como fazer uma integração do chatGPT com uma API da ASP.NET Core podendo assim elevar os recursos de seu aplicativo e fornecer aos usuários uma experiência mais interativa e personalizada.
Gerando a chave secreta (API Key)
Para iniciar a integração a primeira coisa a fazer é inscrever-se no site da OpenAI para obter uma chave de API.
Acesse o site - https://platform.openai.com/ - crie uma conta ou faça o login se já possuir uma conta, ,e a seguir acesse a opção - View API Keys - no menu da sua conta pessoal :
A seguir crie uma nova chave secreta clicando no botão : Create new secret key
É importante manter sua chave de API segura, pois ela fornece acesso à sua conta e a capacidade de usar as APIs ChatGPT da OpenAI. Portanto, certifique-se de não compartilhá-lo com mais ninguém ou deixá-lo em um local inseguro.
Uma vez gerada a chave secreta podemos iniciar o processo de integração com a API.
Criando a Web API
Vamos criar um novo projeto no VS 2022 usando o template ASP.NET Core Web API com o nome ApichatGPT definindo as seguintes configurações :
Vamos remover do projeto criado o controlador WeatherForecast e a classe usada.
Após criar o projeto vamos incluir o pacote nuget do cliente OpenAPI usando o Visual Studio 2022.
No menu Tools do Visual Studio abra uma janela do Package Manager Console e a seguir digite o comando : Install-Package OpenAI
Depois de instalar o pacote OpenAI, podemos criar um cliente ChatGPT API no projeto da API.
Para isso vamos criar um controlador chamado ChatGptController na pasta Controllers e incluir o código abaixo :
using
Microsoft.AspNetCore.Mvc; using OpenAI_API; using OpenAI_API.Completions; namespace ApiChatGPT.Controllers;[Route( "api/[controller]")][ApiController] public class ChatGptController : ControllerBase { [HttpGet] [Route("UseChatGPT")] public async Task<IActionResult> UseChatGPT(string query) { string outputResult = ""; var openai = new OpenAIAPI("sk-SUA_api_key"); CompletionRequest completionRequest = new CompletionRequest(); completionRequest.Prompt = query; completionRequest.Model = OpenAI_API.Models.Model.DavinciText; completionRequest.MaxTokens = 1024; var completions = await openai.Completions.CreateCompletionAsync(completionRequest); foreach (var completion in completions.Completions) { outputResult += completion.Text; } return Ok(outputResult); } } |
Vamos entender o código :
var
openai = new
OpenAIAPI("sk-SUA_api_key");
Este código cria uma nova instância da classe OpenAIAPI com a chave de API
fornecida. A chave de API deve ser armazenada com segurança em um arquivo de
configuração ou variável de ambiente.
string outputResult =
"";
var
openai = new
OpenAIAPI("sk-SUA_api_key");
CompletionRequest completionRequest =
new
CompletionRequest();
completionRequest.Prompt = query;
completionRequest.Model =
OpenAI_API.Models.Model.DavinciText;
completionRequest.MaxTokens = 1024;
O código acima temos a criação de um novo objeto
CompletionRequest e a definição das propriedades do prompt e do modelo. A
propriedade MaxTokens especifica o número máximo de
tokens (palavras ou frases) a serem gerados na conclusão.
var
completions = await
openai.Completions.CreateCompletionAsync(completionRequest);
Essa linha envia a solicitação de conclusão para a API OpenAI e aguarda a
resposta. A palavra-chave await é usada para
aguardar a resposta antes de continuar a execução.
foreach (var completion
in
completions.Completions)
{
outputResult += completion.Text;
}
return
Ok(outputResult);
O laço foreach acima extrai o texto gerado do objeto de conclusão e os concatena
na variável de string outputResult e por fim
retorna o texto gerado como uma resposta HTTP 200 OK.
Depois de concluir as etapas acima para implementar a API
do ChatGPT, a etapa final é executar o projeto e testar a API usando
Swagger.
Executando o projeto e acionando o endpoint com uma consulta: O que é o chatGPT ?
Teremos a seguinte resposta:
Atualmente você terá que aderir a um plano de pagamento para usar a API. Isso pode ser feito clicando no botão - Set up paid account :
Assim, neste primeiro contato com a API do ChatGPT vimos como é simples fazer uma integração com uma API ASP.NET Core. Naturalmente existem muitos mais recursos a serem explorados e deixamos isso para outros artigos.
Pegue o projeto aqui: ApiChatGPT.zip
"Ainda que eu fale as línguas dos homens e dos anjos, se não tiver amor,
serei como o sino que ressoa ou como o prato que retine."
I Coríntios 13:1
Referências: