Integração ChatGPT

Antes de tudo

ChatGPT e API da OpenAI são produtos diferentes

O ChatGPT é o aplicativo que você usa no navegador ou no celular, com assinatura mensal. Integração é outra coisa: o seu código chama a API da OpenAI, paga por token consumido, e a resposta volta direto para o sistema, sem ninguém copiar e colar. A conta da API é separada (platform.openai.com), a cobrança é separada, e a assinatura do ChatGPT não dá crédito de API.

Quase todo pedido que chega para mim com o nome “integração ChatGPT” cai num destes três casos: gerar texto em lote a partir de dados que você já tem, classificar e encaminhar algo que chega o dia inteiro (e-mail, ticket, avaliação de produto) ou responder perguntas usando o catálogo e as políticas da loja como fonte. Os três se resolvem pela API, em PHP, dentro do Magento 2, do WooCommerce ou do seu sistema.

Atenção

Integração feita na Assistants API parou em 26/08/2026

A OpenAI desligou a Assistants API em 26 de agosto de 2026. Muito plugin de WordPress e módulo de Magento feito entre 2024 e 2025 usava o desenho de assistants, threads e runs, e passou a devolver erro nessa data. O caminho atual é a Responses API, e a migração mexe no modelo de dados, não só na URL.

Mapa da migração segundo o guia oficial da OpenAI: Assistants viraram Prompts, Threads viraram Conversations e Runs viraram Responses.
Na Assistants APINa Responses APIO que eu mudo no código
Assistant: instruções e ferramentas guardadas na OpenAIPrompt reutilizável, ou instruções enviadas na própria chamadaTrago as instruções para o código versionado e deixo de depender de um ID criado à mão no painel
Thread: o histórico da conversaConversationMigro o histórico que importa e gravo o ID da conversa junto do cliente ou do ticket
Run: execução assíncrona consultada por pollingResponse: a chamada já devolve o resultado, com streaming opcionalRemovo o laço de polling, que segurava worker do PHP-FPM sem fazer nada
Ferramentas do assistant, como busca em arquivosFerramentas declaradas na própria chamadaReaproveito os vector stores quando dá e reindexo os arquivos quando não dá

Para saber se o seu código depende disso, procure por /v1/assistants, /v1/threads ou pelo cabeçalho OpenAI-Beta: assistants. Se aparecer, a parte que usava esses endpoints já não funciona.

Método

Como eu faço a integração ChatGPT

  1. Amostra real primeiro. Separo de 50 a 100 casos de verdade (produtos, tickets, avaliações) e escrevo o prompt contra eles. Prompt afinado em exemplo inventado quebra no primeiro produto com nome estranho.
  2. Chamada pela Responses API, fora do request. Em PHP, com cURL ou com o Guzzle que o Magento já traz, timeout curto e sempre dentro de um job de fila ou de cron. O cliente da loja nunca espera pela OpenAI.
  3. Saída estruturada. Peço JSON num schema definido (structured outputs) e valido no PHP antes de gravar. Campo faltando ou valor fora da lista não passa.
  4. Retry com backoff. Respostas 429 e 5xx voltam para a fila com intervalo crescente, e o worker respeita o Retry-After. Expliquei a conta em erro 429 na API de IA.
  5. Log de uso. Cada resposta traz o consumo de tokens no campo usage. Gravo por job, junto com o modelo e o tempo, e o relatório do mês sai dessa tabela.
  6. Revisão humana onde o erro custa caro. Texto de vitrine vai para rascunho. Classificação de ticket vai direto, porque um erro ali custa só um reencaminhamento.
Código

O mínimo de uma chamada à Responses API em PHP

Sem SDK, só com cURL, que funciona em qualquer hospedagem. A chave vem do ambiente, e o modelo também, para trocar de versão sem deploy:

$modelo = getenv('OPENAI_MODEL');
$ch = curl_init('https://api.openai.com/v1/responses');
curl_setopt_array($ch, [
    CURLOPT_POST           => true,
    CURLOPT_RETURNTRANSFER => true,
    CURLOPT_TIMEOUT        => 60,
    CURLOPT_HTTPHEADER     => [
        'Authorization: Bearer ' . getenv('OPENAI_API_KEY'),
        'Content-Type: application/json',
    ],
    CURLOPT_POSTFIELDS => json_encode(['model' => $modelo, 'input' => $prompt]),
]);
$corpo  = curl_exec($ch);
$status = curl_getinfo($ch, CURLINFO_HTTP_CODE);
$dados  = json_decode((string) $corpo, true);

O texto vem dentro de output, numa lista de itens. Os SDKs oficiais em Python e JavaScript têm o atalho output_text; em PHP puro eu percorro a lista e junto os blocos do tipo output_text. O consumo vem em usage, e o tratamento de 429 fica no worker, não aqui. O script completo rodando pelo terminal está no post chamar API de IA com cURL no PHP 8.3.

Casos de uso

Três usos que eu mais vejo dar certo

Descrição e atributos em lote

A partir da ficha técnica que o fornecedor manda, o modelo escreve descrição e meta description e sugere atributos de filtro. Tudo cai num campo de rascunho, e o time aprova em lote no admin do Magento ou do WooCommerce.

Triagem de atendimento

E-mail e ticket que chegam são classificados por assunto (troca, atraso, dúvida técnica) e por urgência, com o número do pedido extraído do texto. A fila do atendimento já abre organizada, e a sugestão de resposta espera um humano revisar e enviar.

Busca semântica no catálogo

Gero embeddings dos produtos pela API da OpenAI e guardo num índice vetorial. O OpenSearch, que o Magento 2.4 já usa, tem busca k-NN. Assim “tênis para correr na chuva” encontra o produto certo mesmo sem essas palavras no nome. Entra como complemento da busca da loja, não como substituta.

Limites

Onde eu digo não

O que eu não faço com a API da OpenAI

  • Não coloco a chave da API no JavaScript do navegador nem em plugin que a imprime no HTML. Com ela na mão, qualquer visitante gasta o seu crédito.
  • Não ligo um chat de IA na vitrine respondendo sobre preço, prazo e estoque sem consultar o sistema da loja. Resposta inventada sobre frete vira reclamação.
  • Não automatizo o ChatGPT do navegador, com robô clicando na tela, para economizar a API. Quebra a cada mudança de interface e esbarra nos termos de uso.
  • Não prometo que o modelo nunca erra. Prometo saber quando ele errou, porque toda resposta passa por validação e fica registrada.

Se você ainda está decidindo entre provedores, a página de integração com IA compara GPT, Claude, Gemini e modelo local pelos critérios que eu uso nos projetos.

Perguntas frequentes

Preciso ter ChatGPT Plus para integrar?

Não. A integração usa a API da OpenAI, que tem conta e cobrança próprias em platform.openai.com e é paga por uso. A assinatura do ChatGPT é outro produto e não dá crédito de API.

Meu plugin de ChatGPT parou de funcionar no fim de agosto de 2026. O que houve?

O mais provável é que ele usasse a Assistants API, que a OpenAI desligou em 26 de agosto de 2026. A correção é migrar para a Responses API: assistants viram prompts, threads viram conversations e runs viram responses. Se o plugin não recebeu atualização, eu faço a migração no código ou troco por uma integração própria.

Dá para usar o ChatGPT para gerar descrição de todos os produtos do Magento?

Dá, em lote e em segundo plano, a partir dos atributos que cada produto já tem. Eu gravo o texto num campo de rascunho e alguém aprova antes de publicar, porque o modelo às vezes inventa medida ou material que não está na ficha.

A OpenAI usa os dados da minha loja para treinar modelos?

Pela API, a OpenAI informa que não usa os dados enviados para treinar modelos, a não ser que você autorize. Mesmo assim eu mando só o necessário para a tarefa e tiro dado pessoal de cliente quando ele não é preciso.

Quanto custa por mês usar a API da OpenAI?

Depende do modelo, do tamanho dos textos e do volume. Antes de você aprovar, eu rodo uma amostra real, leio o consumo de tokens que a própria API devolve e multiplico pelo volume do mês. O preço por token eu confiro na página da OpenAI no dia, porque muda com frequência.

Integração ChatGPT funciona em WooCommerce?

Funciona. No WooCommerce a chamada roda numa ação do Action Scheduler, fora do carregamento da página, e a chave fica no ambiente do servidor, não nas opções do WordPress. O resultado volta para o produto, o pedido ou o comentário como qualquer outro dado.