Integração C# com API ChatGPT: guia passo a passo

Treinador Online de Python para Iniciantes

Aprenda Python facilmente sem sobrecarga teórica. Resolva tarefas práticas com verificação automática e escreva código diretamente no navegador.

Start Course

Como integrar C# e ChatGPT: guia completo de integração

\n\n

Imagine: sua aplicação em C# de repente começa não apenas a executar comandos, mas a manter um diálogo significativo, escrever código, traduzir textos ou gerar ideias. Parece ficção científica? Mas isso já é realidade graças à integração da API ChatGPT em C#. Hoje vou mostrar como transformar um programa de console comum em um assistente inteligente em 15 minutos. Vamos lá!

\n\n

A OpenAI fornece uma API REST poderosa que se dá muito bem com .NET. Você não precisa de SDKs de terceiros — basta o HttpClient padrão e algumas bibliotecas para trabalhar com JSON. Todo o processo se resume a quatro passos: obter a chave, enviar a requisição, analisar a resposta e comemorar o resultado.

\n\n

O que precisamos para começar

\n\n

Antes de escrever código, vamos preparar o ambiente. Você vai precisar de:

\n\n
    \n
  • Visual Studio 2022 ou JetBrains Rider (mas também pode usar o .NET SDK comum + bloco de notas)
  • \n
  • .NET 6.0 ou superior (estou usando .NET 8 — é mais rápido)
  • \n
  • Chave da API OpenAI — registre-se em platform.openai.com, vá até a seção API Keys e crie uma nova chave secreta. Atenção: na primeira vez, eles dão $5 para testes, mas não se esqueça dos limites!
  • \n
  • Biblioteca Newtonsoft.Json ou System.Text.Json (embutida no .NET, mas prefiro Newtonsoft — é mais clara)
  • \n
\n\n

Instale o Newtonsoft.Json via NuGet: Install-Package Newtonsoft.Json ou através do gerenciador de pacotes no Visual Studio.

\n\n

Criando a primeira requisição ao ChatGPT em C#

\n\n

Vamos começar com algo simples: enviar uma mensagem para o modelo e obter uma resposta. Toda a mágica acontece através de uma requisição POST para o endpoint https://api.openai.com/v1/chat/completions.

\n\n

Aqui está o código funcional mínimo que recomendo salvar como ponto de partida:

\n\n
using System;\nusing System.Net.Http;\nusing System.Text;\nusing System.Threading.Tasks;\nusing Newtonsoft.Json;\nusing Newtonsoft.Json.Linq;\n\nclass Program\n{\n    private static readonly string apiKey = "SUA_CHAVE_AQUI"; // Não mostre a ninguém!\n    private static readonly string endpoint = "https://api.openai.com/v1/chat/completions";\n\n    static async Task Main(string[] args)\n    {\n        var client = new HttpClient();\n        client.DefaultRequestHeaders.Add("Authorization", $"Bearer {apiKey}");\n\n        var requestBody = new\n        {\n            model = "gpt-3.5-turbo",\n            messages = new[]\n            {\n                new { role = "user", content = "Conte uma piada sobre programadores" }\n            },\n            temperature = 0.7,\n            max_tokens = 150\n        };\n\n        var json = JsonConvert.SerializeObject(requestBody);\n        var content = new StringContent(json, Encoding.UTF8, "application/json");\n\n        var response = await client.PostAsync(endpoint, content);\n        var responseString = await response.Content.ReadAsStringAsync();\n\n        var responseObject = JObject.Parse(responseString);\n        var reply = responseObject["choices"][0]["message"]["content"].ToString();\n\n        Console.WriteLine("ChatGPT diz:");\n        Console.WriteLine(reply);\n    }\n}\n
\n\n

Execute — e o console exibirá algo como: «Por que os programadores confundem Halloween com Natal? Porque Oct 31 == Dec 25!». Engraçado? Funciona? Ótimo!

\n\n

Analisando o código em detalhes

\n\n

Vamos ver o que está acontecendo aqui. Criamos um HttpClient, adicionamos o cabeçalho de autorização — esta é uma prática padrão para trabalhar com a API OpenAI em C#. O corpo da requisição é um objeto JSON com parâmetros:

\n\n