Visão geral

O TermoIntranetAPI é o sistema de atendimento com IA da Termotubos. Robôs configurados pelos colaboradores respondem as conversas que chegam pelo WhatsApp (via Z-API) e pelo Chatwoot, seguindo etapas, instruções e ferramentas definidas no painel.

O sistema tem duas metades, no padrão de projeto da Termotubos:

ParteEndereço em devO que faz
Frontend (SvelteKit)http://localhost:51090O painel dos colaboradores (/painel) e a landing page
Backend (Rust + Axum)http://localhost:51091A API, os webhooks do Z-API e do Chatwoot e a chamada aos modelos de IA
PostgreSQL (Docker)localhost:51099Banco do app, no schema termointranetapi

O que existe no painel

ÁreaRotaO que faz
Robôs/painel/robosCadastro dos robôs: modelo de IA, prompt base e o fluxo da conversa em canvas (etapas de instrução do modelo, com condição de saída e ferramentas, e etapas de botões que ramificam o atendimento)
Conversas/painel/conversasHistórico das conversas com os clientes: canal, assunto e resumo
Clientes/painel/clientesCadastro dos clientes (razão social, CNPJ, contato)
Colaboradores/painel/colaboradoresCadastro dos colaboradores e das permissões de ler, criar, editar e deletar
Configurações/painel/configuracoesProvedores de IA, instâncias do Z-API e contas do Chatwoot

Como uma mensagem é respondida

  1. A mensagem chega por webhook: receberEventoZApi (WhatsApp) ou receberEventoChatwoot, em backend/controller/webhooks/.
  2. O backend passa a conversa para o robô configurado (responderComoRobo, em backend/integrations/llm/).
  3. A resposta é gerada no provedor de IA configurado: ChatGPT, Gemini ou DeepSeek.
  4. A resposta volta pelo mesmo canal, pelas integrações z_api ou chatwoot.

Integrações

IntegraçãoPastaPara que serve
IAbackend/integrations/llm/Gera as respostas dos robôs e valida as chaves e os modelos de cada provedor
Z-APIbackend/integrations/z_api/Recebe e envia mensagens do WhatsApp
Chatwootbackend/integrations/chatwoot/Recebe e envia mensagens das caixas de entrada do Chatwoot
Intranetbackend/integrations/intranet/Consulta dados da intranet da Termotubos

Acesso

O login é do TermoAuth (app termo-intranet-api): o frontend manda a pessoa para o /handoff do TermoAuth, recebe o JWT em /painel#token= e o envia em Authorization: Bearer a toda chamada. O backend valida o token offline pelo JWKS do TermoAuth e libera só quem tem cadastro ativo na tabela auth (e-mail, perfil colaborador ou cliente, ativo e termoauth_id). Não existe senha no TermoIntranetAPI.

Rodando localmente

ServiçoPortaComo subir
Frontend51090Configuração frontend do .claude/launch.json
Backend51091Configuração backend do .claude/launch.json
Documentação51092Configuração docs-projeto do .claude/launch.json
Diagrama do banco (ERD)51093Configuração database-erd do .claude/launch.json
Drizzle Studio51094Configuração database-studio do .claude/launch.json
PostgreSQL51099docker compose up -d na raiz
Documentação em construção

Esta é a primeira página da documentação do TermoIntranetAPI. As próximas páginas entram em docs/projeto/src/routes/docs/<pagina>/+page.md, e o menu lateral é definido em docs/projeto/src/navegacao.json.

Atualizado em 2026/10/02 00:16