Integrando ChatGPT com .NET: Como Buscar Prompts Simples
Integrar o ChatGPT em uma aplicação .NET pode adicionar um poderoso recurso de processamento de linguagem natural ao seu projeto. Portanto esta integração permite que você envie prompts ao ChatGPT e receba respostas diretamente na sua aplicação. Então neste guia, vamos explorar passo a passo como buscar prompts simples utilizando a API do ChatGPT em um projeto .NET, abordando desde a configuração inicial até a implementação completa.
Pré-requisitos
Antes de começar, então certifique-se de ter:
- .NET SDK instalado em sua máquina.
- Uma chave de API do OpenAI (você pode obter uma em OpenAI).
- Conhecimento básico de C# e .NET.
Configuração do Ambiente
1. Inicializando o Projeto
Crie um novo projeto .NET:
dotnet new webapi -n ChatGPTIntegration
cd ChatGPTIntegration
2. Instalando Dependências
Instale o pacote System.Net.Http
para fazer requisições HTTP:
dotnet add package System.Net.Http
Configurando a Chave de API do OpenAI
Adicione sua chave de API do OpenAI ao arquivo appsettings.json
:
{
"OpenAI": {
"ApiKey": "your_openai_api_key"
}
}
Criando o Serviço para a API do ChatGPT
1. Implementando o Serviço
Crie uma nova pasta chamada Services
e um arquivo ChatGPTService.cs
dentro dela:
using System.Net.Http;
using System.Net.Http.Headers;
using System.Text;
using System.Text.Json;
using System.Threading.Tasks;
public class ChatGPTService
{
private readonly HttpClient _httpClient;
private readonly string _apiKey;
public ChatGPTService(IConfiguration configuration)
{
_httpClient = new HttpClient();
_apiKey = configuration["OpenAI:ApiKey"];
}
public async Task<string> GetResponseAsync(string prompt)
{
var requestBody = new
{
prompt = prompt,
max_tokens = 150
};
var requestJson = JsonSerializer.Serialize(requestBody);
var content = new StringContent(requestJson, Encoding.UTF8, "application/json");
_httpClient.DefaultRequestHeaders.Authorization = new AuthenticationHeaderValue("Bearer", _apiKey);
var response = await _httpClient.PostAsync("https://api.openai.com/v1/engines/davinci-codex/completions", content);
var responseJson = await response.Content.ReadAsStringAsync();
var responseObject = JsonSerializer.Deserialize<ChatGPTResponse>(responseJson);
return responseObject.choices[0].text.Trim();
}
}
public class ChatGPTResponse
{
public Choice[] choices { get; set; }
}
public class Choice
{
public string text { get; set; }
}
Criando um Controller para Lidar com Requisições
1. Implementando o Controller
Crie uma nova pasta chamada Controllers
e um arquivo ChatGPTController.cs
dentro dela:
using Microsoft.AspNetCore.Mvc;
using System.Threading.Tasks;
[ApiController]
[Route("api/[controller]")]
public class ChatGPTController : ControllerBase
{
private readonly ChatGPTService _chatGPTService;
public ChatGPTController(ChatGPTService chatGPTService)
{
_chatGPTService = chatGPTService;
}
[HttpPost]
public async Task<IActionResult> GetResponse([FromBody] ChatGPTRequest request)
{
if (string.IsNullOrEmpty(request.Prompt))
{
return BadRequest("Prompt is required");
}
var response = await _chatGPTService.GetResponseAsync(request.Prompt);
return Ok(new { response });
}
}
public class ChatGPTRequest
{
public string Prompt { get; set; }
}
Configurando o Servidor Web
1. Configurando a Injeção de Dependência
No arquivo Startup.cs
, então registre o ChatGPTService
para injeção de dependência:
public void ConfigureServices(IServiceCollection services)
{
services.AddControllers();
services.AddSingleton<ChatGPTService>();
}
Testando a Integração
Para testar a integração, então você pode usar um cliente HTTP como Postman ou cURL para enviar uma requisição POST ao endpoint /api/chatgpt
com um prompt simples.
Exemplo de Requisição com cURL
curl -X POST http://localhost:5000/api/chatgpt \
-H "Content-Type: application/json" \
-d '{"prompt": "Hello, how are you?"}'
Exemplo de Interface Simples
Para completar, vamos criar uma interface simples para interagir com o ChatGPT.
1. Criando uma Página HTML Simples
Crie um arquivo index.html
na pasta wwwroot
:
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>ChatGPT Integration</title>
</head>
<body>
<form id="chat-form">
<label for="prompt">Enter your prompt:</label>
<input type="text" id="prompt" name="prompt" required>
<button type="submit">Send</button>
</form>
<div id="response"></div>
<script>
document.getElementById('chat-form').addEventListener('submit', function (event) {
event.preventDefault();
const prompt = document.getElementById('prompt').value;
fetch('/api/chatgpt', {
method: 'POST',
headers: {
'Content-Type': 'application/json',
'Accept': 'application/json'
},
body: JSON.stringify({ prompt: prompt })
})
.then(response => response.json())
.then(data => {
document.getElementById('response').innerText = data.response;
})
.catch(error => console.error('Error:', error));
});
</script>
</body>
</html>
Conclusão
Integrar o ChatGPT com .NET é um processo direto que pode adicionar um recurso de linguagem natural valioso à sua aplicação. Portanto neste guia, cobrimos desde a configuração inicial até a implementação de um endpoint que interage com a API do ChatGPT, além de uma interface simples para testar a funcionalidade. Com essas etapas, você pode facilmente expandir e personalizar a integração de acordo com as necessidades do seu projeto.