Skip to content

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:
    1. Redis: Armazena respostas brutas por 7 dias (86400 * 7), garantindo latência próxima de zero para produtos buscados recentemente.
    2. 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.
  • Segregação de Tipo: As buscas são divididas em texto e imagem, permitindo otimizar os parâmetros de pesquisa (ex: searchType=image para imagens e restrição de idioma lang_pt para 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:

  1. Montagem do Contexto: O serviço coleta os dados brutos (títulos e snippets) e os estrutura de forma lógica.
  2. Injeção de Regras de Negócio:
    • JSON Schema: O serviço força o uso do json_schema_saida definido 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).
  3. 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.

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.
  • 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.

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.