A ZeroChat precisava ao mesmo tempo de uma vitrine comercial enxuta para apresentar o produto ao mercado e do próprio motor de IA que faz o produto funcionar: um chat que responde com base na documentação do cliente, sem inventar.
Site institucional em HTML/JS/SCSS — leve, rápido, sem peso de framework para uma landing comercial. Em paralelo, motor de chat com pipeline RAG completo: ingestão de documentos do cliente, chunking, geração de embeddings, busca vetorial via pgvector e geração de resposta condicionada à base de conhecimento.
Contexto
A ZeroChat é um SaaS de atendimento ao cliente com IA. O produto entrega um widget de chat instalável em qualquer site que responde dúvidas do visitante com base na documentação que a empresa subiu — sem alucinar, sem inventar resposta. Para chegar nesse cenário, dois projetos correram em paralelo: a vitrine comercial do produto e o motor de IA que sustenta tudo.
Site institucional
A escolha foi deliberada: HTML, JavaScript vanilla e SCSS — sem framework. Para uma landing comercial focada em apresentar o produto, mostrar planos e converter visitante em trial, a stack mais leve possível faz sentido. Resultado: arquivos pequenos, primeiro paint quase instantâneo, zero dependência de runtime de framework no bundle.
O site organiza:
- Apresentação do produto com demonstração visual do widget em ação
- Tabela de planos com diferenças claras entre Starter, Growth e Pro
- Casos de uso que ajudam o visitante a se identificar com o problema que o produto resolve
- CTAs de conversão para trial e contato comercial
Motor de chat com IA (o produto)
O coração do SaaS é o pipeline RAG (Retrieval-Augmented Generation) que faz o chat responder com fidelidade à base de conhecimento de cada cliente — sem cair em alucinação.
Ingestão de conhecimento
O cliente sobe documentos em vários formatos (PDF, DOCX, planilhas, texto). O sistema:
- Extrai o conteúdo bruto de cada formato com parsers específicos
- Divide em chunks com tamanho calibrado para boa recuperação semântica
- Gera embeddings de cada chunk via OpenAI
- Armazena no Postgres com pgvector — banco relacional tradicional com extensão para busca vetorial nativa
Conversação com RAG
Quando o visitante manda mensagem no chat:
- A pergunta é convertida em embedding e usada como query semântica
- Busca vetorial no pgvector retorna os chunks mais relevantes da base do cliente
- Os chunks recuperados entram no contexto do prompt junto com a pergunta
- O LLM gera resposta condicionada estritamente à base de conhecimento
- Guardrails garantem que a resposta cite apenas o que está na base; se não houver match suficiente, a IA admite que não sabe e oferece encaminhar para atendimento humano
Por que não alucina
A diferença entre “chat IA genérico” e “chat IA confiável” é justamente o RAG bem instrumentado:
- Sem chunk relevante encontrado → resposta padrão de “não tenho essa informação”
- Resposta sempre ancorada nos chunks recuperados (citação interna)
- Threshold de similaridade configurável por tenant
- Logs estruturados de cada conversa para auditoria e melhoria contínua
Captura de leads e handoff
Além de responder, o chat captura nome, email e telefone quando faz sentido na conversa, e oferece handoff para atendimento humano quando a IA detecta que a pergunta sai do escopo da base.
Por que duas entregas juntas
Um produto SaaS B2B precisa que o site venda o produto e que o produto entregue o que o site promete. Construir as duas frentes com o mesmo time evita o desencaixe entre marketing e tecnologia — o que está prometido na landing é exatamente o que o motor faz.
