Como ChatGPT e TypeScript se tornam melhores amigos
Imagine: você escreve código em TypeScript e, de repente, seu serviço ganha um superpoder — a capacidade de entender e gerar texto humano. A ChatGPT API torna isso realidade. Neste artigo, não vamos apenas conectar a API — vamos construir um módulo completo para comunicação com a rede neural, que será robusto, tipado e pronto para produção.
Se você pensa que a integração de IA é algo saído da ficção científica ou reservado para gigantes como o Google, apresso-me em animá-lo: a OpenAI fornece uma API REST simples, e o TypeScript, com sua tipagem estrita, torna o trabalho com ela seguro e previsível. Vamos colocar a mão na massa na prática.
Preparação do ambiente: o que instalar
Antes de escrever código, vamos garantir que você tenha tudo o que precisa. Para trabalhar com a ChatGPT API em TypeScript, você vai precisar de:
- Node.js versão 18 ou superior (recomendo a 20 LTS)
- npm ou yarn para gerenciamento de pacotes
- Chave de API OpenAI — obtenha-a em platform.openai.com
- Editor de código (VS Code, WebStorm — qualquer um que preferir)
Vamos criar um novo projeto e instalar as dependências:
mkdir chatgpt-typescriptcd chatgpt-typescriptnpm init -ynpm install openai dotenvnpm install -D typescript @types/node ts-nodeObserve: estamos usando o SDK oficial da OpenAI, que funciona muito bem com TypeScript. O pacote dotenv será necessário para armazenar a chave da API com segurança.
Configuração do TypeScript e variáveis de ambiente
Vamos criar o arquivo tsconfig.json com as configurações básicas:
{ "compilerOptions": { "target": "ES2020", "module": "commonjs", "lib": ["ES2020"], "outDir": "./dist", "rootDir": "./src", "strict": true, "esModuleInterop": true, "skipLibCheck": true, "forceConsistentCasingInFileNames": true }, "include": ["src/**/*"]}Agora, crie o arquivo .env na raiz do projeto:
OPENAI_API_KEY=sua_chave_super_secretaImportante: adicione .env ao .gitignore para não commitar a chave no repositório acidentalmente!
Escrevendo a primeira requisição ao ChatGPT em TypeScript
Crie a pasta src e o arquivo index.ts. Vamos começar com algo simples: enviar uma mensagem e obter uma resposta.
import OpenAI from 'openai';import dotenv from 'dotenv';
dotenv.config();
const openai = new OpenAI({ apiKey: process.env.OPENAI_API_KEY,});
async function chatWithGPT(prompt: string): Promise<string> { try { const response = await openai.chat.completions.create({ model: 'gpt-4', messages: [ { role: 'system', content: 'Você é um assistente útil.' }, { role: 'user', content: prompt }, ], temperature: 0.7, max_tokens: 500, });
return response.choices[0]?.message?.content || 'Sem resposta'; } catch (error) { console.error('Erro ao fazer requisição ao ChatGPT:', error); throw error; }}
// Uso(async () => { const answer = await chatWithGPT('Conte uma piada curta sobre programadores'); console.log('ChatGPT diz:', answer);})();Execute o código com o comando npx ts-node src/index.ts. Se tudo estiver configurado corretamente, você verá a resposta da rede neural. Observe a tipagem: o TypeScript sugere automaticamente a estrutura do objeto response, o que torna o desenvolvimento mais confortável.
Análise dos parâmetros principais
- model:
gpt-4— o modelo mais inteligente atualmente. Para economizar, você pode usargpt-3.5-turbo. - messages: uma lista de mensagens que define o contexto da conversa. O papel
systemdefine o comportamento do assistente, euseré a entrada do usuário.