Como Integrar React com OpenAI? Um guia rápido e prático
Veja o código e aprenda linha por linha a configurar a API, armazenar chaves com segurança e fazer requisições para criar um chat interativo em React com OpenAI.
Integrar inteligência artificial (IA) em aplicações web é uma habilidade cada vez mais valiosa. Este guia é ideal para desenvolvedores com conhecimento básico em React que querem dar um passo além com IA.
Continue lendo e aprenda a fazer essa integração!
Para fazer o download do(s) arquivo(s) utilizados na aula, preencha com o seu e-mail:
Não vamos te encaminhar nenhum tipo de SPAM! A Hashtag Treinamentos é uma empresa preocupada com a proteção de seus dados e realiza o tratamento de acordo com a Lei Geral de Proteção de Dados (Lei n. 13.709/18). Qualquer dúvida, nos contate.
O que é a integração de React com a API da OpenAI?
A integração de React com a API da OpenAI permite que uma aplicação web interaja com modelos de IA, como o GPT-3.5, para processar textos, responder perguntas ou gerar conteúdo dinamicamente.
Neste tutorial, criamos uma interface com um campo de texto (textarea) e um botão que envia perguntas à API, exibindo as respostas na tela.
- Como funciona: O usuário digita uma pergunta, o React envia a requisição à API da OpenAI via
fetch, e a resposta é exibida na interface. - Exemplo prático: Um chat que responde perguntas sobre um curso ou canal, como "Quais conteúdos são publicados no YouTube?".

Como configurar um projeto React para usar a API da OpenAI?
Para começar, você precisa de um projeto React funcional, baixe os arquivos acima e você terá todos arquivos necessários pra isso.
Dica: Este tutorial vai fazer mais sentido se você já criou um projeto com Vite, uma ferramenta rápida para configurar aplicações React. Se ainda não sabe, veja nosso passo a passo sobre como criar projetos em React com Vite.
- Estrutura do projeto:
- Um componente principal (
App.jsx) com um título, umtextareapara entrada de texto, um botão para enviar a pergunta e uma área para exibir a resposta. - Estilização básica com CSS para centralizar o layout e formatar os elementos.
- Um componente principal (
- Passos iniciais:
- Crie o projeto com
npm create vite@latest. - Limpe os arquivos padrão (como logos e CSS desnecessário).
- Configure um layout com um contêiner, título,
textareae botão.
- Crie o projeto com
Como obter e configurar a chave da API da OpenAI?
Para usar a API da OpenAI, você precisa de uma chave de API. Siga este passo a passo para obtê-la e configurá-la com segurança:
- Criação da chave:
- Acesse platform.openai.com.
- Faça login ou crie uma conta (pode usar Google).
- Vá em "Settings", "API Keys" e clique em "Create New Secret Key".
- Nomeie a chave (ex.: "React Project") e copie o valor gerado.
- Armazenamento seguro:
- Crie um arquivo
.envna raiz do projeto. - Adicione a chave com o formato
VITE_OPENAI_API_KEY=sua-chave-aqui. - Acesse a chave no código com
import.meta.env.VITE_OPENAI_API_KEY.
- Crie um arquivo
- Por que usar
.env?:- Evita expor a chave no código-fonte.
- Protege contra acesso não autorizado, especialmente em repositórios públicos.
Boas práticas para chaves de API:
- Usar
.env: Armazena chaves em variáveis de ambiente para segurança contra vazamentos. - Prefixo
VITE_: Necessário para variáveis no Vite, garantindo compatibilidade. - Nunca expor chaves: Evitar commit de
.envno Git para proteção contra uso indevido.
Como fazer a requisição à API da OpenAI no React?
A integração com a API da OpenAI é feita com uma requisição HTTP usando fetch. Abaixo, explicamos a lógica do código para enviar perguntas e exibir respostas.
- Estrutura do código:
- Estado: Use
useStatepara gerenciar a pergunta (pergunta), a resposta (resposta) e o estado de carregamento (carregando). - Função de envio: Uma função assíncrona (
enviarPergunta) faz a requisição à API. - Interface: Um
textareapara entrada, um botão que dispara a função e uma área condicional para mostrar a resposta.
- Estado: Use
- Exemplo de código (simplificado)
import { useState } from 'react';
function App() {
const [pergunta, setPergunta] = useState('');
const [resposta, setResposta] = useState('');
const [carregando, setCarregando] = useState(false);
async function enviarPergunta() {
setCarregando(true);
setResposta('');
try {
const response = await fetch('https://api.openai.com/v1/chat/completions', {
method: 'POST',
headers: {
'Content-Type': 'application/json',
'Authorization': `Bearer ${import.meta.env.VITE_OPENAI_API_KEY}`
},
body: JSON.stringify({
model: 'gpt-3.5-turbo',
messages: [{ role: 'user', content: pergunta }]
})
});
const dados = await response.json();
const conteudo = dados.choices?.[0]?.message?.content || 'Erro ao obter resposta';
setResposta(conteudo);
} catch (error) {
console.error('Erro na requisição:', error);
setResposta('Ocorreu um erro. Verifique o console.');
}
setCarregando(false);
}
return (
<div className="container">
<h1>Chat com IA</h1>
<textarea value={pergunta} onChange={(e) => setPergunta(e.target.value)} />
<button onClick={enviarPergunta} disabled={!pergunta || carregando}>
{carregando ? 'Enviando...' : 'Enviar'}
</button>
{resposta && <div><strong>Resposta:</strong> {resposta}</div>}
</div>
);
}
export default App;- Explicação:
- A requisição usa o endpoint
https://api.openai.com/v1/chat/completionscom métodoPOST. - O
Authorizationinclui a chave da API. - O corpo da requisição especifica o modelo (
gpt-3.5-turbo) e a mensagem do usuário. - A resposta é processada para extrair o conteúdo (
choices[0].message.content) com verificações para evitar erros (?.). - O estado
carregandodesativa o botão durante a requisição e exibe "Enviando...".
- A requisição usa o endpoint
Como depurar e lidar com limites da API da OpenAI?
Ao integrar a API, é comum encontrar erros, como cotas excedidas ou respostas vazias. Aqui estão algumas dicas para depurar e gerenciar o uso:
- Depuração:
- Use
console.log(dados)para inspecionar a resposta da API. - Verifique erros no console (F12) para identificar problemas, como chaves inválidas ou cotas excedidas.
- Acesse
dados.choices?.[0]?.message?.contentcom operadores opcionais (?.) para evitar erros com respostas indefinidas.
- Use
- Limites da API:
- Contas novas podem ter créditos limitados (ex.: US$5 no passado, mas agora requer pagamento).
- Adicione um cartão na seção "Billing" da OpenAI para desbloquear requisições.
- Monitore o uso na aba "Usage" para evitar custos inesperados (ex.: 20 tokens por pergunta custam frações de centavo).
- Alternativas:
- Use APIs de outros provedores, como Claude (Anthropic) ou Gemini (Google), que podem oferecer cotas gratuitas.
- A lógica de requisição (
fetch, headers, body) é semelhante para outras APIs.
Boas práticas para depuração e gerenciamento:
- Console.log: Inspeciona respostas da API para verificar estrutura e erros.
- Operadores opcionais (
?.): Evitam erros em objetos indefinidos. - Monitorar uso: Acompanhe o consumo de tokens na aba "Usage" da OpenAI.
Conclusão: Como levar sua integração com IA ao próximo nível?
Integrar React com a API da OpenAI é uma forma prática de adicionar funcionalidades de IA, como chats interativos, a suas aplicações. Com a configuração correta da chave da API, um código bem estruturado e práticas de depuração, você pode criar experiências dinâmicas para os usuários. E tudo isso você aprendeu aqui!
Se você curtiu o conteúdo, vai gostar também dos nossos outros artigos sobre JavaScript.
E caso prefira esse conteúdo no formato de vídeo, assista aqui embaixo ou acesse o nosso canal do YouTube!
Hashtag Treinamentos
Para acessar publicações de JavaScript, clique aqui!
Posts mais recentes de JavaScript
- Try Catch no JavaScript: Programação Defensiva na PráticaAprenda a usar try catch no JavaScript e melhore a sua programação defensiva!
- ExpressJS: Crie APIs de forma rápida e prática com JavaScriptO ExpressJS simplifica a criação de APIs com JavaScript e Node.js. Aprenda passo a passo a montar seu backend com rotas, testes e um exemplo prático de controle de estoque.
- Método forEach no JavaScript: automatize tarefas repetitivasAprenda como usar o Método forEach no JavaScript para automatizar tarefas repetitivas e gerar tabelas dinâmicas de forma prática e eficiente.
Posts mais recentes da Hashtag Treinamentos
- Planilha de Controle de Notas Fiscais no Excel [Grátis]Baixe a planilha de controle de notas fiscais no Excel grátis: calcule ISS e retenções, veja o que está em aberto e gere a cobrança de cada nota de serviço.
- Qual IA usar na empresa: ChatGPT, Claude ou Perplexity?Qual IA usar na empresa: veja as diferenças entre ChatGPT, Claude e Perplexity e quando cada um rende mais em cada área da sua equipe.
- Apostilas Gratuitas em PDF: Excel, Power BI, Python e IABaixe apostilas gratuitas em PDF de Excel, Power BI, Python, Claude e agentes de IA, com exercícios e gabarito. Escolha a sua e comece hoje.







