03 - Motor IA e Serviços (ConteudoIAService)
O ConteudoIAService é a peça central da inteligência do sistema. Ele é um serviço injetável (Service Pattern) que abstrai a complexidade da mineração de dados, orquestração de IA e formatação de saída.
1. Orquestração de Mineração (Google Search API)
O serviço implementa uma estratégia de Otimização de Custos para evitar o consumo desnecessário da API:
- Cache em Duas Camadas:
- Redis: Armazena respostas brutas por 7 dias (
86400 * 7), garantindo latência próxima de zero para produtos buscados recentemente. - Tabela
cache_api_google: Persistência física no banco de dados. Caso o Redis seja limpo, o sistema ainda recupera a busca do banco, evitando nova chamada externa.
- Redis: Armazena respostas brutas por 7 dias (
- Segregação de Tipo: As buscas são divididas em
textoeimagem, permitindo otimizar os parâmetros de pesquisa (ex:searchType=imagepara imagens e restrição de idiomalang_ptpara textos).
2. Engenharia Reversa de Prompts
O serviço não envia perguntas genéricas. Ele constrói um Meta-Prompt Rígido que garante a consistência do conteúdo gerado:
- Montagem do Contexto: O serviço coleta os dados brutos (títulos e snippets) e os estrutura de forma lógica.
- Injeção de Regras de Negócio:
- JSON Schema: O serviço força o uso do
json_schema_saidadefinido no template, garantindo que o retorno da IA seja sempre processável programaticamente. - Instruções de Categoria: O
prompt_sistemaé injetado para definir o tom de voz e a persona (ex: Especialista Técnico em Ferramentas).
- JSON Schema: O serviço força o uso do
- Segurança e Sanitização:
- Limpeza de tokens Markdown (
```json). - Decodificação de JSON com validação de tipo (
is_array). Se a IA falhar na estrutura, o serviço encapsula a resposta bruta em uma chave de segurança para não interromper o processo de geração.
- Limpeza de tokens Markdown (
3. Regras Gramaticais e Estruturais (Regras de Ouro)
Para garantir que o texto retornado pela API seja entregue ao ERP com qualidade editorial, o serviço (e os controladores que o utilizam) aplica as seguintes regras de Blindagem Gramatical:
- Pontuação de Listas:
- Linhas de listas são forçadas a começar com hífen (
-). - Todas as linhas terminam com ponto e vírgula (
;), exceto a última linha da lista, que recebe um ponto final (.). - A pontuação original é removida para evitar que caracteres como
,ou.se acumulem no final da frase.
- Linhas de listas são forçadas a começar com hífen (
- Regras de Garantia:
- O serviço possui uma lógica matemática que converte meses (ou anos) informados em um texto normativo padrão (ex: "...3 meses de garantia legal por lei... e [Total-3] meses de garantia pelo fabricante...").
- Higienização de Especificações:
- Remoção de frases irrelevantes como "Imagens meramente ilustrativas" do meio dos dados técnicos.
- Extração forçada de campos críticos (EAN, Modelo, Marca, Referência) para o final da lista técnica, garantindo padronização visual no frontend e no ERP.
- Tratamento de Pontuação Dupla:
- Regex corretivo que substitui pontuação dupla ou conflituosa (como
!?ou?.) por apenas um sinal, evitando que o texto final pareça gerado por robôs com erros de sintaxe.
- Regex corretivo que substitui pontuação dupla ou conflituosa (como
4. Integração com Flowise/LLM
O serviço opera via Http::timeout(90)->post para garantir que o tempo de resposta da IA não cause Timeouts no Worker do Laravel. A configuração é centralizada via .env:
* Flowise: Atua como o "cérebro" low-code que orquestra a chamada e devolve a resposta estruturada.
* Blindagem: A comunicação é feita via DNS do Docker (http://flowise:3000), garantindo que o tráfego de dados de IA permaneça na rede interna privada, sem exposição à Internet pública.