CL-2026-04-28 - BK-275 - Hotfix 502 no Gerar com IA do Texto para Audio
Resumo
O botao Gerar com IA da aba Texto para Audio deixou de bloquear a requisicao web aguardando IA. A acao agora cria um job pendente, redireciona o admin e processa a geracao em background.
Causa
O fluxo anterior chamava provedores de IA de forma sincrona dentro do POST audio_generate_with_ai. Como Gemini/Kimi/bridge podem levar 75-120s, o gateway podia encerrar a resposta antes do PHP terminar.
Mudancas
- Nova action
audio_generate_one_background. Gerar com IAeRefazer com sugestaopassaram a usar a action em background.- Extraida a rotina comum
rnt_audio_process_pending_copy_job()para processar jobs pendentes. - O lote
audio_generate_all_backgroundpassou a usar o mesmo executor. - O executor agora marca o job como
processandoantes de chamar IA. - Os timeouts do bridge Gemini/Kimi foram reduzidos para fallback mais rapido quando o provedor trava.
- O job ativo agora exibe alerta de status e a pagina faz auto-refresh enquanto estiver
pendenteouprocessando. - Erros terminais do Gemini direto, como quota/billing/rate-limit, agora pulam o bridge e caem em fallback rapido.
- Por decisao operacional posterior, o provider
geminido Texto para Audio deixou de usar chave/API Google e passou a chamar sempre o Gemini CLI local logado na VPS. - Mantido o fluxo antigo
audio_generate_with_aino arquivo para compatibilidade, mas os formularios visiveis nao dependem mais dele.
Validacoes
php -l admin/modulos/campanhas/redes_sociais/texto_for_audio.phpphp -l admin/modulos/campanhas/redes_sociais/audio_common.php- Conferencia de actions com
rg. - Teste real do job
#13: redirect rapido confirmado; o bridge Gemini deu timeout e o job foi salvo comofallbackcom textos. - Teste real do job
#14: fallback confirmado; diagnostico local isolou Gemini com quota excedida, OpenAI com chave invalida e Kimi sem JSON/timeout. - Teste PHP isolado do Gemini CLI:
ok=1,provider=gemini,model=gemini_cli_default, 3 versoes geradas em cerca de 15s.
Pendencias
- Novo teste autenticado no painel em producao usando Gemini CLI.
- Evoluir auto-refresh simples para polling AJAX se a tela precisar acompanhar muitos jobs ao mesmo tempo.
- OpenAI segue fora do caminho principal do Texto para Audio; se voltar a ser opcao operacional, trocar/remover a chave invalida.
- Discord por ultimo.