Eu insisti no suporte do TranslatePress até eles mandarem um template de plugin para API própria. Não era GPT. Era um casco. Eu adaptei com ajuda do ChatGPT para falar com a OpenAI. Na ponta, o site traduz por uma fração da API do Google Tradutor — eu cheguei a falar em até cem vezes mais barato, conforme o volume. Corrigindo o título da gravação: não é o chat na tela. É a API. Na época, o modelo era o GPT-3.5 Turbo.
Instala a extensão, em Tradução automática escolhe o motor customizado, cola a chave da OpenAI e a URL do endpoint. Eu mudei o template para mandar uma string por vez, gravei só o texto traduzido no log, e travei o gasto no painel da OpenAI. Num site com mais de 30 mil páginas e 12 idiomas, a média era uns 2 dólares por dia.
- Motor
- Custom Translate Engine no TranslatePress
- Modelo na gravação
- GPT-3.5 Turbo pela API da OpenAI
- Custo que eu vi
- ~US$ 2/dia em 30 mil páginas × 12 idiomas
O suporte mandou o template. O 3.5 Turbo faz o resto
TranslatePress não nasceu com GPT. Nasceu com Google, e com um gancho para motor customizado se você implora o suficiente. O arquivo que eles enviam é uma extensão WordPress. Você instala. Em Tradução automática aparece a opção de engine customizada. Campo da chave. Campo da URL de acionamento. Embaixo já vem um valor padrão; só mexe se você alterar o código.
Eu liguei no GPT-3.5 Turbo, o mesmo da conversa barata daquela época. GPT-4 traduzia um pouco melhor e custava cerca de uma casa decimal a mais. Para string de site, 3.5 Turbo aguentava. Eu não vi motivo de pagar o quatro em lote. O comando que o plugin manda para o modelo leva o código do idioma de origem, o código do destino, e a ordem: traduza isto. Na gravação eu medi por volta de 60 tokens só nessa instrução, cada vez.
String miúda é o que fura o bolso — por isso eu queria Assistant
TranslatePress não manda o artigo inteiro. Manda pedaço: item de menu, botão, frase de três palavras. Se cada chamada carrega 50 ou 60 tokens de instrução, o comando custa mais que a tradução. Eu estava no meio de mudar o código para Assistant, exatamente pelo motivo do outro vídeo: instrução parada no Assistant, string no corpo, menos token repetido. Naquele dia eu ainda não tinha entendido o Assistant o suficiente. Ficou como próximo passo, não como receita pronta.
Enquanto isso, o jeito de não quebrar o cartão é o mesmo do Google no plugin: bloquear acionamento vindo de bot do Google, se você não quer traduzir na hora do rastreamento. Eu recomendo. O gasto mesmo assim fica baixo. Site com mais de 30 mil páginas, 12 idiomas, string repetida de vez em quando. Média de uns 2 dólares por dia. Quando eu estourava um pouco, subia o teto no painel e ia a 10. Raro. Só quando eu enfiava idioma novo em lote.
Uma string por vez, log magro, tabela no banco
O template original empacota várias strings num array e manda tudo numa chamada. O GPT, do jeito que eu usei, não traduzia isso direito. Eu quebrei: uma string por requisição. Mais ida e volta. Menos resposta pela metade. Também enxuguei o log. TranslatePress, de fábrica, guarda a resposta inteira da API — JSON, metadado, o pacote. Em pouco tempo o arquivo vira giga. Eu gravei só o trecho traduzido. Dá para conferir. Não estoura disco.
No banco, a tabela que eu mostrei se chama algo como translate_machine_engine. Abre. Coluna da string original, coluna da resposta. Eu percorri as linhas na gravação: original de um lado, tradução do outro, sem erro visível, tudo separado. Se você deixar chave e log ligados, com a resposta magra isso não vira um arquivo monstro. Com a resposta completa do template, vira.
- Peça ao suporte do TranslatePress o template de motor customizado, ou parta de uma extensão equivalente se você já programa.
- Instale no WordPress e, em Tradução automática, selecione o engine customizado.
- Crie a chave em platform.openai.com → API keys e cole no campo da extensão.
- Deixe a URL do endpoint padrão, a menos que você tenha mudado o arquivo.
- Ajuste o código para enviar uma string por vez e gravar só o texto traduzido no log.
- Marque para não acionar em visita de bot do Google, se a cota importar.
- Trave teto diário de caracteres no TranslatePress e teto de gasto mensal na OpenAI.
A chave na OpenAI, o teto de 1 dólar e o labirinto do Google Cloud
Conta em openai.com não é o lugar da chave. A chave nasce em platform.openai.com, em API keys. Gera, copia, cola no TranslatePress. No uso eu mostrei o gráfico: um dia 8 dólares, outro 3, outro 2. Varia. Eu tinha colocado um limite pago baixo no mês — na fala saiu “um dólar”, no contexto de site enorme sendo traduzido agora; o número exato você confere no painel, porque eu também falei em teto de milhões de caracteres por dia. O que importa: a OpenAI deixa travar gasto mensal e aviso. Deixa travar token por dia. Se o plugin enlouquecer, a chamada para.
No Google Cloud da API de tradução, na minha experiência, você coloca alerta e reza. O painel é labirinto. Se bugar e traduzir sem parar, você está lascado. Aqui não. Teto mensal, aviso, gráfico que um ser humano lê. Por isso, além do preço por caractere, eu troquei. OpenAI também serve para outra coisa além de tradução. Assistant, modelo, experimento. Mas a tradução do site, neste recorte, é essa extensão, essa chave, esse teto.
Num site menor meu eu deixei 200 mil caracteres por dia. Até o momento da tela, tinha passado 32,9 mil. Sobrou cota. É o jeito certo de dormir: teto no plugin, teto na OpenAI, log que você consegue abrir sem baixar um arquivo de 2 GB.
O que eu não entrego neste vídeo, e o que já basta para ligar
Eu não vou colar o PHP da extensão aqui. O arquivo muda, o template do suporte muda, o modelo da OpenAI muda de nome. O caminho não muda: motor customizado, uma string, filtro, teto. Se você só cola a chave no Google Tradutor do TranslatePress, está pagando o preço cheio para o mesmo botão de menu.
GPT-3.5 Turbo, na minha tela, traduziu bem. Token estava caindo de preço. 700 palavras por frações de centavo de dólar, na conta que eu fiz na hora — 0,002 dólar por mil tokens, na ordem de grandeza que eu falei. Confira a tabela vigente. O plugin continua sendo o TranslatePress. A OpenAI entra como motor. A revisão humana, em página que vende ou que ensina, não saiu da história só porque o log está verde.
- Template do suporte → extensão WordPress → motor customizado no TranslatePress.
- Modelo da gravação: GPT-3.5 Turbo. GPT-4 só se a qualidade da string exigir.
- Uma string por chamada. Array completo quebrava a tradução.
- Log só com o texto traduzido. JSON completo incha o disco.
- Teto no plugin e teto na OpenAI. Google Cloud, para mim, não travava direito.
Na sequência
- Confirme que o TranslatePress lista o motor customizado depois de ativar a extensão.
- Crie a chave em platform.openai.com, não na home de chatgpt.com.
- Trave um gasto mensal na OpenAI antes do primeiro lote.
- Trave caracteres por dia no TranslatePress. 200 mil foi o número do site menor na tela.
- Desligue acionamento em bot do Google se você não quer traduzir na hora do rastreio.
- Abra a tabela do motor no banco e leia dez pares original/tradução.
- Se a resposta vier em JSON enorme, o log ainda está no modo fábrica — enxugue.
Onde isso quebra
Mandar o array inteiro de strings numa chamada e achar que o modelo “entende lote”.
Deixar o log da API completa ligado em site de 30 mil páginas.
Não pôr teto na OpenAI e descobrir o dia de 8 dólares virar uma semana.
Usar GPT-4 em item de menu de três palavras.
Confundir a chave da OpenAI com a sessão do ChatGPT no navegador.
Achar que o plugin revisa sentido. Ele grava o que o modelo devolveu.
Perguntas frequentes
TranslatePress já traz GPT?
Não no que eu usei. Trouxe Google, e um template de API customizada depois de eu insistir no suporte. A ponte com a OpenAI foi código meu em cima desse template.
Quanto eu gastava de verdade?
Média de uns 2 dólares por dia num site com mais de 30 mil páginas e 12 idiomas. Pico de 10 quando eu enfiava idioma novo. Tela de uso: 8, 3, 2 dólares em dias seguidos. Site menor, com teto de 200 mil caracteres, tinha usado 32,9 mil na hora da gravação.
Vale GPT-4?
Para lote de interface, eu fiquei no 3.5 Turbo. GPT-4 era melhor e mais caro. Se uma página legal ou um termo técnico exigir, mande essa página no quatro. Não mande o menu.
Por que uma string por vez?
Porque o modelo, na minha tentativa, não traduzia o array do template. Uma por vez voltou texto limpo. É mais requisição. É menos retrabalho.
E o Assistant?
Era o próximo passo para não pagar a instrução em toda string curta. Na gravação eu ainda não tinha essa versão estável. O artigo do Worker e do n8n é onde eu avanço isso.