Busca
Encontrar uma informação num acervo de milhões de documentos costumava exigir adivinhação: a palavra exata, o filtro certo, várias tentativas. Na Busca do DATTA você pergunta em português, como perguntaria a um colega — e recebe, na mesma tela, a resposta redigida pela IA e os documentos que a sustentam, lado a lado. Sem alternar entre "o chat de um lado e a busca do outro".
Onde ela vive hoje: a busca do dia a dia está incorporada ao (menu lateral). A entrada "Busca" que existia na seção Descobrir foi removida em 2026-05-31; a página dedicada continua funcionando por URL direta (deeplink) — útil para favoritos e links compartilhados.
Quando usar a Busca
| Cenário | A Busca responde? |
|---|---|
| "Como funciona a prescrição intercorrente?" | Sim — IA explica + documentos de suporte |
| "Mostre julgados do STJ sobre o art. 924 do CPC" | Sim — lista jurisprudência rankeada |
| "Preciso de um dashboard de receita" | Não — use o DATTA BI |
| "Quero rodar um pipeline ETL" | Não — use o DATTA Extract |
| "Analisar dados estatisticamente com R" | Não — use o Notebook |
A Busca é para perguntas exploratórias sobre conteúdo (legislação, jurisprudência, processos, normas, documentos). Para criar artefatos — dashboards, pipelines, notebooks — use os copilots especializados.
Como usar
1. Abrir a Busca
Para o dia a dia, use o no menu lateral — ele cobre a busca com IA e documentos. A página dedicada abre por URL direta: https://<seu-dominio>/search-hybrid.html (ou, dentro do shell, https://<seu-dominio>/index.html?view=search-hybrid, com a trilha DATTA › Descobrir › Busca).
2. Digitar a pergunta
O campo aceita qualquer pergunta em português. O placeholder "Como posso ajudar?" indica que você não precisa formatar nada.
Exemplos:
prescricao intercorrente execucao fiscalQual o prazo para embargos de declaracao?Empresas com socio em comum com CNPJ 12.345.678/0001-90Decisoes do STJ sobre tutela de urgencia em ambito tributario
Clique Buscar ou tecle Enter.
3. Ler a resposta da IA
Logo abaixo do campo aparece o card Resposta da IA:
- O texto surge gradualmente, em tempo real, enquanto a IA redige.
- Por padrão a resposta é truncada visualmente após algumas linhas, com efeito de "fade".
- Clique Continuar... para expandir a resposta completa na mesma página.
- Clique Abrir no chat completo para continuar a conversa de forma interativa no chat tradicional.
4. Explorar os documentos
Abaixo da resposta aparece a lista Documentos relevantes, paginada de 10 em
- Cada item mostra:
- Título do documento (ex.: "STJ — REsp 1.234.567/SP — Prescrição...")
- Fonte (STJ, CPC, LEF, ...)
- Score de relevância
- Ranks de cada algoritmo: BM25, kNN e Graph (quando aplicável)
- Trecho com os termos da busca destacados em amarelo
5. Abrir um documento
Clique em qualquer card de documento. Um painel lateral desliza pela direita com:
- A trilha
Busca › <título do documento> - O trecho relevante que originou o resultado
- O botão Mostrar documento completo — o texto integral aparece reconstruído a partir dos trechos indexados
Para fechar: tecle ESC, clique no X do painel, ou clique fora dele.
Como a busca funciona por baixo
Sua pergunta dispara dois caminhos em paralelo:
- Resposta da IA — um modelo de linguagem redige uma síntese em português, com as fontes citadas, e transmite o texto em tempo real.
- Busca textual híbrida — três estratégias de ranqueamento combinadas:
- BM25 — casamento literal de texto;
- kNN semântico — similaridade de significado por vetores, gerados pelo modelo de embedding ativo da plataforma;
- Graph — as conexões do documento com o resto da base no grafo.
Os três rankings são fusionados por RRF 3-way (Reciprocal Rank Fusion): cada documento recebe um score final invariante à escala. A janela de espera é de poucos segundos — se um dos caminhos demorar, você continua vendo o outro carregar, e a tela nunca fica em branco esperando o mais lento.
Os mesmos recursos estão disponíveis para integração: a plataforma expõe um endpoint de busca híbrida e outro de resposta da IA em streaming — veja a referência de API. Detalhes técnicos da fusão de rankings estão em quill-search-suggest, seção "RRF 3-way real".
Atalhos úteis
| Atalho | Ação |
|---|---|
Enter no campo de busca | Executa a busca |
ESC no painel de documento | Fecha o painel |
| Clique no card de documento | Abre o painel de detalhe |
Tab + Enter no card | Abre o painel pelo teclado (acessibilidade) |
Limites e expectativas
- Volume: paginação de 10 em 10 itens. Para resultados mais precisos, refine a pergunta — inclua tribunal, ano, artigo.
- Velocidade: p95 abaixo de 500 ms para a parte BM25 + kNN; a resposta da IA depende do modelo configurado na plataforma (vLLM Qwen3/DeepSeek local ou Gemini como alternativa).
- Atualização: a Busca usa índices vivos do OpenSearch — documentos novos ficam pesquisáveis assim que são ingeridos e catalogados automaticamente, sem reindexação manual.
- Privacidade: toda a busca acontece dentro da sua infraestrutura. Nenhum dado deixa o datacenter — inclusive a pergunta enviada à IA, processada pelo modelo local quando ele está configurado.
Quando algo não funciona
| Sintoma | Causa provável | Ação |
|---|---|---|
| "Nenhum documento encontrado" | Termo muito específico ou não indexado | Reformule ou amplie o escopo |
| Resposta da IA vazia + ":(" | Modelo de IA temporariamente indisponível | Tente novamente em 30 s; o aviso vem em português |
| Documento completo sem conteúdo | Documento sem trecho rastreável | Peça ao administrador uma reindexação |
| Sessão expirando toda hora | Falha de sessão no navegador | Reportar — corrigido em 2026-05-26 |
Busca no Chat — cards, página âncora e modo conversa
Desde 2026-05-28, o principal exibe os resultados de busca como cards estruturados ao lado da resposta da IA — a mesma experiência da página de Busca, agora integrada à conversa.
Quando os cards aparecem
O chat detecta automaticamente quando a pergunta pede uma listagem:
- Verbos imperativos: "liste", "mostre", "exiba", "apresente", "me dê", "quais são", "todos os" / "todas as", "relacione".
- Buscas por entidade ou processo (ex.:
liste informacoes da Maria,processos do CNPJ 12.345.678/0001-90) sempre ativam cards.
Perguntas conversacionais (ola, explique o art. 924) continuam com resposta inline, sem cards.
Página âncora (padrão)
Ao enviar uma pergunta de listagem, a tela funciona como uma página de resultados:
- Os cards aparecem acima da resposta assim que a plataforma encontra os registros — antes mesmo de o texto da IA terminar de chegar.
- Cada card mostra título, trecho, fonte (Neo4j, OpenSearch, Trino/JDBC) e score.
- Respostas longas da IA ficam compactadas: preview com efeito de fade e o botão Expandir resposta completa. A compactação vale desde o início da transmissão — a bolha não "salta" quando a resposta termina.
Detalhes de um resultado
Clique em qualquer card: um painel abre com a tabela chave-valor de todas as propriedades do registro (nome, CPF, endereço, etc.), com rótulos em português. Quando o resultado é um documento textual, o botão Abrir documento completo leva ao texto integral.
Modo conversa
Clique em Expandir resposta completa para entrar no modo conversa, voltado à leitura e ao diálogo focado com a IA:
- Todas as respostas longas mostram o conteúdo completo.
- Os cards somem para dar foco ao texto.
- Um banner discreto no topo oferece ← Voltar à página de resultados, que restaura os cards e os previews compactados.
| Ação | Resultado |
|---|---|
| Pergunta de listagem | Cards + preview da IA (página âncora) |
| Clique no card | Painel com as propriedades do registro |
| Expandir resposta completa | Modo conversa (cards ocultos, texto integral) |
| ← Voltar à página de resultados | Página âncora restaurada |
Workspace na área de escrita — e as seções do histórico
Ao lado do indicador de contextos há o seletor de workspace. São dois controles distintos, e a diferença importa:
| Workspace | Contexto | |
|---|---|---|
| O que faz | limita a busca aos contextos dele, agrupa o histórico em seções e filtra quais painéis aparecem | dentro do workspace, refina de quais bases a IA extrai a resposta |
| Onde aparece | seletor à esquerda da área de escrita | indicador ao lado dele |
Os dois se compõem: escolher um workspace no seletor restringe a busca aos contextos daquele workspace (o mesmo escopo, resolvido no servidor com a sua identidade, do Chat do workspace descrito adiante), e o indicador de contextos passa a listar só os contextos do workspace — desligar um deles tira-o da busca; não há como ligar um contexto de fora. Todos os workspaces é o estado sem escopo: a busca alcança todos os contextos ativos. Nesse estado o botão do seletor mostra só Workspaces — o nome do seletor, como Contextos e Persona ao lado; com um workspace escolhido, ele mostra o nome do workspace.
Até 18/09/2026 o seletor só organizava o histórico e a busca continuava alcançando todas as bases; a mudança veio de uma medição em que um workspace escolhido recebia resposta de contextos de fora dele.
O histórico fica seccionado por workspace, com a seção do escopo atual primeiro — é nela que a conversa nova cai: a do workspace ativo ou, em Todos os workspaces, a Sem workspace. A conversa guarda o workspace em que nasceu e não muda de seção depois — trocar de workspace muda quais seções você vê, não de quem são as conversas. Conversas criadas em Todos os workspaces — inclusive as abertas pelo Continuar no Chat do Painel de Processos nesse escopo —, e todas as anteriores a esta mudança, ficam em Sem workspace.
Trocar o workspace aqui é o mesmo que trocar pelo menu lateral: vale para a plataforma toda.
Histórico de conversas
O painel de histórico abre por padrão — é de onde se cria uma conversa nova, e escondê-lo escondia o botão. Se você o minimizar, a escolha fica guardada no navegador e vale nas próximas visitas.
O histórico é permanente. Respondida a pergunta, a mensagem fica na plataforma: o chat não tem opção de excluir conversa. Quem apaga histórico é só o administrador, em Sistema › Histórico do chat — tudo ou os dias mais antigos, sempre do mais velho para o mais novo.
Cada conversa tem um menu ⋯ (aparece ao passar o cursor) com a opção Renomear, que abre um campo com o título atual já selecionado. Enter salva, Esc cancela.
Os diálogos não fecham ao clicar fora, de propósito: renomear perderia o que você digitou. Esc cancela qualquer um deles.
A lista mostra as 100 conversas mais recentes; Carregar mais conversas, no fim dela, traz as seguintes.
A conversa reaberta mostra a resposta como ela foi dada: o texto, o contexto que respondeu, os cards e a contagem das fontes, e a tabela, o grafo e o mapa da resposta. Os dados da tabela e do grafo são relidos da base quando você os abre — é a mesma leitura que a tabela faz ao virar de página.
Nenhuma resposta se perde no caminho. Se você clicar em Parar, fechar a aba ou a conexão cair, o que já tinha aparecido fica gravado, com o aviso "Resposta interrompida antes de terminar.". Se der erro no meio, fica o que foi mostrado e o aviso de erro. E se a plataforma não conseguir gravar uma resposta, a própria mensagem avisa — "Esta resposta não pôde ser gravada no histórico do chat." —; se não conseguir gravar a pergunta, ela nem é processada, e o chat diz para tentar de novo.
O título é gerado automaticamente depois que a primeira resposta termina — antes disso, e sempre que a geração falhar, vale o começo da sua pergunta. Ele é escrito uma vez só: se você renomear, a plataforma não sobrescreve.
Nova conversa com uma conversa em andamento também pergunta antes — e o texto diz o que importa: a conversa atual não é perdida, ela continua no histórico.
Quando a conversa nova começa, o histórico se recolhe sozinho — no celular e no computador — e a tela fica toda para ela. O botão Mostrar histórico, no canto superior esquerdo do chat, o traz de volta. Esse recolhimento não conta como minimizar: a escolha guardada no navegador continua a mesma.
Painel lateral — painéis e grafo em abas
O Chat abre um painel à direita para o que precisa ser visto ao lado da conversa, e não no lugar dela. O painel tem uma barra de abas: cada conteúdo aberto vira uma aba, e as abas convivem.
| Como abrir | Aba criada |
|---|---|
| Painéis, na área de escrita | Painéis — a lista dos painéis a que você tem acesso; escolher um abre o painel ali mesmo |
| Explorar dados desta resposta, numa resposta da IA | Grafo — as entidades e ligações daquela resposta |
O que o painel faz:
- Cada aba fecha sozinha pelo
×dela; o×do topo fecha o painel inteiro. - A largura é ajustável: arraste a borda esquerda do painel. A medida fica guardada no navegador e volta na próxima vez.
- Expandir (o ícone de setas para fora, no topo) faz o painel ocupar a tela toda, escondendo a conversa e o histórico; o mesmo botão recolhe.
Escrecolhe a expansão e, no painel já recolhido, fecha o painel. - O painel pertence à conversa: ele fecha ao trocar de conversa no histórico ou ao iniciar uma nova. Mantê-lo aberto deixaria o grafo de uma conversa ao lado das mensagens de outra.
O grafo era, antes, uma janela que cobria a tela inteira — ler a resposta e explorar as ligações eram duas coisas que não cabiam juntas. Como aba, os dois ficam visíveis ao mesmo tempo; quando o grafo precisa de espaço, o botão de expandir devolve a tela cheia.
No celular o painel cobre a tela, como qualquer gaveta: não há coluna para dividir numa largura dessas.
De onde vêm os resultados
A busca por entidade consulta todas as fontes em paralelo: os bancos de grafo dos contextos cadastrados (resolvidos dinamicamente pela configuração, nunca fixos em código), os índices de documentos de domínio e os agentes de banco de dados conectados. Dados internos da plataforma — telemetria, auditoria, permissões — são excluídos automaticamente.
Seletor de Contextos — escolha o que a busca considera
No topo da tela, o seletor Contextos lista todos os contextos cadastrados na plataforma, cada um com o status de conexão e um interruptor para ligar ou desligar aquele contexto na busca:
- Contexto desligado sai da busca por completo: o grafo, os documentos e os índices daquele contexto não são consultados em nenhuma rota — nem na busca direcionada, nem na varredura entre contextos, nem na página de resultados em cards.
- Se a pergunta apontar para um contexto desligado, a busca segue apenas nos contextos ativos — não retorna erro. O assistente também é instruído a não responder de memória sobre o conteúdo do contexto desligado: em vez de recitar a informação, ele avisa que o contexto está desativado e como reativá-lo.
- Quando há contexto desligado, o rótulo do seletor mostra a contagem (ex.:
Contextos (3/5 ativos)). - Clique no nome do contexto para abrir a configuração dele (como antes); o interruptor age só na busca.
A seleção é por usuário e salva na plataforma (não no navegador): entrando em outra máquina, os mesmos contextos permanecem ligados/desligados. Contexto recém-criado nasce ativo. Usuário não autenticado não vê os interruptores — a busca considera tudo.
Contextos na área de escrita — e o alargamento automático
O indicador Contextos fica ao lado do campo de pergunta, e não no topo da tela: trocar o escopo tem efeito na próxima pergunta, então o filtro mora junto do ponto de ação. Clicar abre a lista, cada contexto tem uma caixa, e a mudança vale na hora — não há botão de confirmar. A seleção é a mesma do seletor do topo: uma preferência por usuário, guardada no servidor.
No alto da lista, a caixa Selecionar todos marca ou desmarca todos os contextos de uma vez: com tudo ligado ela aparece marcada e o clique desliga tudo; com parte ligada mostra um traço e o clique liga tudo. É o caminho rápido para buscar em poucos contextos: desmarque todos e marque só os que a pergunta precisa. Com nenhum contexto marcado a lista avisa — a busca não alcança contexto desligado, então "nenhum marcado" não é "buscar em tudo".
Contexto não é workspace. O workspace define o conjunto de contextos que a busca pode alcançar (e organiza histórico e painéis); o seletor de contextos refina dentro desse conjunto. Com um workspace ativo, a lista mostra apenas os contextos dele; com "Todos os workspaces", o acervo inteiro.
As ferramentas da IA respeitam o mesmo escopo. Não é só a busca: quando o modelo consulta o grafo ou os documentos por conta própria (as ferramentas cypher_query, schema_info, semantic_search e afins), um contexto que você desligou — ou que o workspace não alcança — é recusado com o motivo, e o modelo é orientado a usar os contextos disponíveis. A ferramenta de busca universal (global_search), que varre todas as fontes sem escopo, não existe para o chat.
Agentes de Banco só quando selecionados. O seletor de agentes (ícone de banco na área de escrita) é o único caminho para o chat consultar um Agente de Banco: sem agente selecionado a ferramenta jdbc_lookup não é oferecida ao modelo e a busca não toca agente nenhum; com agente selecionado, só ele pode ser consultado. Até 18/09/2026 todos os agentes cadastrados entravam em toda pergunta — e o modelo ia ao agente de CNPJ para responder o que o contexto FEBRABAN já responde.
Perguntas sobre relações entre entidades — "sócio de outra empresa com o mesmo CNAE", "empresas de um contador com o mesmo endereço", "graus de separação entre um CPF e um CNPJ", "qual o relacionamento entre duas pessoas" — têm rota própria: em vez de buscar trechos de documentos, o assistente lê o esquema do contexto (schema_info), monta e executa uma consulta de travessia no grafo (cypher_query) e responde com os dados encontrados, o critério aplicado e o que o esquema não tem para responder (dado inexistente no grafo nunca é inventado). Em contexto que reúne vários bancos — um por origem, como o FEBRABAN com a Receita, a CVM, o BCB e a base negativa —, o esquema diz em qual banco cada tipo de nó mora, e a consulta vai ao banco certo.
Análise avançada — algoritmos de grafo e estatística. Perguntas como "quais empresas são mais centrais na rede de sócios", "detecte comunidades de empresas ligadas pelos mesmos sócios", "existe correlação entre porte e número de sócios", "qual a distribuição do capital social por município" ou "previsão de abertura de empresas" seguem outro roteiro: o assistente primeiro descobre o que a plataforma oferece — o catálogo de algoritmos de grafo (Neo4j GDS, executados pelo DATTAX), os pacotes do runtime R e o motor estatístico —, lê o modelo de dados da fonte, executa pela ferramenta certa (pipeline DATTAX com o algoritmo sobre um subgrafo filtrado, perfil estatístico da fonte, ou um script R sobre linhas já agregadas) e responde com os números, o método usado e o que foi truncado. Quando um recurso não existe na instalação — o runtime R é opcional —, a resposta diz isso e segue pela alternativa; nada é inventado.
Perguntas de negócio, sem jargão. Não é preciso nomear o algoritmo. "Ao analisar as redes de sócios que conectam as empresas em Campinas, quais são os principais grupos formados por essas parcerias e existe diferença significativa no capital social médio entre os cinco maiores?" é reconhecida como análise avançada: o assistente compara a pergunta com o catálogo de métodos da plataforma — cada algoritmo de grafo e cada pacote R documentados, com as necessidades de negócio que resolvem — e monta um plano de execução (primeiro os grupos na rede, depois o teste de diferença entre eles). Só entram no plano métodos que existem nesta instalação; o que não está disponível é descartado e dito. Perguntas jurídicas, pedidos de explicação e buscas por uma empresa ou pessoa continuam no caminho de sempre.
Qual motor a resposta usou. Quando a resposta executou um algoritmo de grafo ou um script R, uma linha logo abaixo de "Respondido a partir de N fontes" diz qual: Busca avançada usando GDS, Busca avançada usando R ou Busca avançada usando GDS + R. A linha conta só o que de fato rodou — consultar o catálogo de algoritmos ou tentar um runtime indisponível não entra — e volta junto com a conversa quando você a reabre pelo histórico. Enquanto a resposta é preparada, o indicador continua "Processando...".
O modo Pesquisa / Investigação deixou de existir. Antes era o analista quem avisava, por um botão, que a pergunta merecia varrer todas as bases — o que exigia saber disso antes de perguntar. Agora quem decide é a busca:
- a pergunta é atendida no contexto que a plataforma identifica;
- se ali não houver resultado, a busca amplia sozinha para os demais contextos aos quais você tem acesso;
- ampliar não amplia permissão: contexto que você desligou, ou que o workspace não alcança, continua fora;
- quando a resposta vem de outro contexto, ela diz de onde veio — a troca de escopo nunca é silenciosa.
Seletor de Persona — o chat responde como um agente
Ao lado do seletor de contextos há o botão Persona. Ele abre a lista de agentes persona cadastrados em — os curados de fábrica são Promotor de Justiça, Advogado, Revisor Processual e Juiz — e a opção Nenhuma, que é o padrão. Escolhida uma persona, a resposta passa a ser escrita no papel dela: o texto da persona entra nas instruções da IA entre as instruções da plataforma e o seu prompt padrão, e as ferramentas que a IA pode usar ficam limitadas à lista da persona (um Juiz que não tem consulta ao grafo na lista não a usa, mesmo que a pergunta peça). Um chip com o nome da persona aparece na área de escrita; o × volta para "Nenhuma".
- Só uma persona por conversa: duas ao mesmo tempo produziriam instruções contraditórias. A escolha fica gravada na conversa e volta quando você a reabre pelo histórico; conversa nova nasce sem persona.
- Cada persona exige uma permissão própria, e os quatro papéis nativos (administrador, usuário avançado, analista e somente leitura) já nascem com todas elas: a persona direciona o tipo de resposta, não amplia o acervo nem as ferramentas que a pessoa já podia usar. Numa role personalizada que não receba a permissão, a persona aparece desabilitada na lista, com o motivo, e a plataforma recusa a mensagem se o pedido chegar mesmo assim. As permissões são atribuídas por papel em .
- Persona não é contexto: ela muda como a IA responde; os contextos continuam decidindo onde a busca procura.
Chat do workspace — busca escopada aos contextos do workspace
Ao abrir o Chat pelo menu de um workspace (ícone de chat dentro do grupo do workspace no menu lateral), a plataforma direciona para uma tela própria de chat escopada: toda a busca considera somente os contextos daquele workspace, e não os dados gerais da tela inicial.
- O indicador Contextos, na área de escrita, mostra quantos contextos do workspace estão na busca — ex.:
Contextos 3/4quando um deles está desligado. - O escopo é resolvido no servidor pelo id do workspace, com a identidade do usuário logado: workspace restrito por membros só resolve para quem o enxerga. Se o workspace não puder ser resolvido (excluído, sem acesso ou serviço de configuração indisponível), a busca não degrada para "sem escopo" — a tela exibe uma mensagem clara pedindo para tentar novamente.
- O seletor Contextos continua valendo dentro do workspace: contexto desligado pelo usuário permanece fora da busca mesmo pertencendo ao workspace.
- A página de resultados em cards (documentos abaixo da resposta) segue o mesmo escopo.
- O Chat geral (breadcrumb
DATTA › Chat, ou o botão de página inicial) segue sem escopo: varre todos os contextos ativos, como antes. O chat do workspace tem breadcrumbDATTA › Workspace › Chat. - Workspace sem contextos cadastrados não tem dado a escopar: o chat abre sem a marcação ao lado do modo e busca como o Chat geral.
O chat aprende com você
O chat usa o seu próprio histórico — nunca o de outros usuários — para melhorar as respostas:
- Memória por usuário: além de pares pergunta/resposta anteriores, trechos de conversas antigas semanticamente próximos da pergunta atual entram como contexto da resposta. A conversa em andamento não é duplicada, e o histórico de outro usuário nunca aparece.
- Avalie a resposta: cada resposta do assistente traz as ações útil / não útil (polegar para cima/para baixo — aparecem ao passar o mouse sobre a mensagem; sempre visíveis no celular). A avaliação alimenta o aprendizado da busca, e "não útil" pesa mais que qualquer sinal automático. Só o dono da conversa pode avaliá-la; falha ao registrar mostra aviso e permite tentar de novo.
- Cliques personalizam o ranking: documentos que você abriu nos resultados ganham prioridade nas suas próximas respostas — sinal pessoal, com identificador protegido por hash, que também vale na página de cards.
- Correções viram expansão de busca: quando você reformula uma pergunta e o novo texto funciona (ou você marca "útil"), a plataforma aprende a associação — primeiro para você, depois para todos.
Formatação da resposta
A resposta do assistente chega formatada: negrito, código, títulos, listas e tabelas. Cada modelo de IA formata do seu jeito — o Gemini costuma responder com listas, o gpt-oss-120b com tabelas — e o chat mostra os dois do mesmo modo: a tabela que o modelo escreve aparece como tabela, com cabeçalho e bordas, sem as barras (|) e a linha de traços da marcação. O número de processo aparece com o hífen comum e pode ser copiado e colado na busca. Essa tabela é parte do texto da resposta; a tabela paginada, descrita a seguir, é outra coisa — nasce de uma consulta que a plataforma executa.
Resposta em tabela — listas paginadas
Quando a pergunta pede uma lista de registros — "liste as empresas ativas do estado de São Paulo", "quais sócios têm participação em mais de uma empresa", "relacione os processos por vara" —, a resposta não vem como texto corrido: o chat monta uma tabela paginada dentro da própria mensagem.
Como funciona
- O detector de intenção decide, junto com o tipo da pergunta, o formato de entrega: texto com markdown ou tabela. Pedido de lista (verbo de listagem + plural, "quais empresas…", agregação "por município") vira tabela; conceito, comparação, procedimento, contagem simples ("quantas empresas") e saudação continuam texto. "Em tabela" ou "em planilha" na pergunta força a tabela.
- Para a tabela, o modelo não escreve a lista: ele escreve uma consulta somente-leitura com as colunas relevantes para a pergunta — quantas forem necessárias — e a plataforma conta o total, executa a primeira página e mostra o resultado. O texto da resposta é só um resumo: total, critério aplicado, o que cada coluna significa e ressalvas. A ordem das colunas é a da pergunta — nenhuma coluna é fixa como primeira — e o nome de cada coluna descreve o valor como está gravado: um campo que guarda dois dados no mesmo valor ganha um nome que diz os dois. É o caso do nome empresarial no grafo do CNPJ: a Receita registra o empresário individual como "01.130.026 JOSE PAULO LABBATE" (raiz do CNPJ seguida do nome), e a coluna se chama "CNPJ Raiz e Nome Empresarial", não "Razão Social" — no CSV o leitor só tem o cabeçalho para saber que o prefixo numérico faz parte do registro oficial. Quando o registro traz o CPF do titular no fim do nome (a forma mais comum no MEI), a coluna se chama "Nome Empresarial e CPF do Titular".
- A tabela tem cabeçalho fixo, rolagem horizontal e vertical (não há limite de colunas), navegação por páginas, "ir para a página", seletor de 100 ou 500 registros por página (padrão 500) e "Exportar CSV", que baixa a tabela inteira (todas as páginas) num arquivo
.csvcom separador;e codificação UTF-8 pronta para o Excel. Números ficam alinhados à direita; valores vazios aparecem como "—". A exportação é limitada a 100.000 registros: acima disso a tela diz quantos há e pede para refinar a pergunta, em vez de entregar um arquivo cortado. - Pergunta de relação entre entidades (sócios em comum, mesmo endereço, mesmo CNAE, caminho entre duas pessoas) vira grafo e tabela — veja "Resposta em grafo" abaixo — mesmo quando a frase é "existe algum sócio que…": a resposta útil é a relação, não o "sim". Só contagem ("quantos sócios em comum") segue em texto.
- Se a consulta do modelo voltar vazia, a tabela não aparece: o modelo é orientado a corrigir a consulta (maiúsculas, caminho completo até a entidade) e tentar de novo; só depois disso ele responde, em texto, que não há registros e qual critério usou.
- Em pergunta de pares ("empresas com o mesmo endereço"), cada linha é um par distinto: a plataforma confere a primeira página e recusa consulta que compara a entidade consigo mesma ou repete o par espelhado, e o modelo reescreve.
O que esperar
- Cada página é buscada no servidor quando você navega; a lista inteira nunca é carregada de uma vez.
- A tabela fica disponível por 2 horas, renovadas a cada página lida. Ao reabrir a conversa depois disso, a mensagem mostra "Esta tabela expirou…" — refaça a pergunta para gerá-la de novo.
- Só quem fez a pergunta consegue folhear a tabela — e exportá-la.
- Sem ordenação explícita na consulta, a ordem entre páginas não é garantida — a tabela avisa.
- Hoje a tabela vem dos bancos de grafo dos contextos. Listas de bancos ligados por Agente de Banco continuam em texto.
Resposta em grafo — relações desenhadas, com a tabela junto
Quando a pergunta é sobre relações — "quais empresas possuem o mesmo endereço principal e possuem sócio com algum grau de relacionamento?", "existe caminho entre João e a ACME?", "quais empresas compartilham sócio com a ZETA?" —, a resposta vem nas duas formas ao mesmo tempo: um grafo desenhado dentro da mensagem (as empresas, pessoas e endereços como nós, os vínculos como linhas — o mesmo desenho do Explorar Dados) e, logo abaixo, a tabela paginada da mesma consulta, com total, páginas e "Exportar CSV". Nenhuma das duas substitui a outra.
Como funciona
- O detector de intenção reconhece a pergunta relacional e decide o formato grafo. Pedido explícito "em tabela" ou "em planilha" entrega só a tabela; "quantos…" continua em texto.
- O modelo escreve uma consulta somente-leitura que devolve os nós e os vínculos do padrão mais as colunas da tabela. A plataforma desenha os nós e os vínculos devolvidos — e também os vínculos que existem entre esses nós, mesmo que a consulta não os tenha listado —, conta o total, monta a primeira página e guarda tudo. O texto da resposta é o resumo: quantos registros, o critério, o que os nós e as linhas representam.
- Para perguntas que pedem algoritmo — anel de fraude ou conluio (componentes conectados, comunidades, triângulos), centralidade, menor caminho ponderado, similaridade — o modelo pode calcular antes com o motor de grafo (GDS) ou com R e então desenhar o subgrafo resultante, com a métrica como coluna da tabela.
- No grafo, tudo acontece no lugar, como no Explorar Dados: clique num nó ou numa linha para ver as propriedades; duplo-clique (ou "Expandir relacionamentos") traz os vizinhos do nó, sem embaralhar o que já estava desenhado; a barra "Filtrar" acima do desenho filtra por tipo de nó, tipo de vínculo e propriedade; e os botões no canto direito do desenho aproximam (+), afastam (−), ajustam à moldura (⤢) e abrem em tela cheia — os mesmos do designer de processos.
- Na tabela, o nó aparece pelo nome, o vínculo pelo tipo e o caminho como "A → B → C"; as demais colunas são as que o modelo devolveu (CNPJ, endereço, sócio…).
O que esperar
- O grafo mostra até 300 nós — os dos primeiros registros. Acima disso a mensagem avisa; a tabela tem todos os registros.
- Grafo e tabela ficam disponíveis por 2 horas, renovadas a cada uso; ao reabrir a conversa depois disso, a mensagem diz que expiraram — refaça a pergunta.
- Só quem fez a pergunta vê o grafo e a tabela.
- Se a consulta não devolver nós nem vínculos (só colunas), a mensagem mostra apenas a tabela e avisa.
- Quando os nós devolvidos não se ligam diretamente (o vínculo passa por um registro intermediário, como o estabelecimento entre a empresa e o endereço), a plataforma completa o desenho com esses nós de ligação e avisa quantos entraram.
Mapa da resposta — as propriedades de localização no Google Maps
Toda resposta da IA tem o botão "Mapa" (ao lado de "Grafo"). Ele abre o Google Maps já com a melhor propriedade de localização que a plataforma identificou na resposta, e o botão Propriedades, no alto do mapa, lista todas as candidatas para você marcar uma ou várias:
- Empresa — pelo nome ou pelo CNPJ; quando a empresa está na base de cadastro, o marcador vai para o endereço real (com coordenadas, se houver); senão o Google a procura pelo nome.
- Endereço escrito na resposta ("Rua das Flores, 123, Centro").
- CEP, município ("município de Campinas", "Campinas/SP", "sede em Uberlândia") e estado.
A lista vem ordenada da candidata mais precisa (empresa com endereço na base) para a menos (estado); a primeira já aparece marcada. Cada propriedade marcada vira um marcador numerado, o mapa enquadra todas e os chips abaixo da barra levam a cada uma. Desmarque no chip ou na lista.
Ferramentas do mapa — todas as do Google: tipo de mapa (ruas, satélite, híbrido, relevo), Street View (painel próprio ou o boneco arrastado), tela cheia, zoom, escala, rotação e gestos livres; busca de lugares no campo sobre o mapa (o lugar escolhido entra como propriedade marcada); Rota entre as propriedades marcadas, na ordem em que foram marcadas — dirigindo, a pé, transporte público ou bicicleta —, com distância e tempo, arrastável no mapa; Camadas de trânsito em tempo real, transporte público e ciclovias; e "Abrir no Google Maps", que leva a mesma seleção (ou a rota) para o site do Google.
O que esperar
- Propriedade que o Google não localiza fica marcada na lista com aviso e sem marcador; posição encontrada só pelo município ou pelo nome da empresa é dita como aproximada na janela do marcador.
- Sem nenhuma candidata na resposta, o mapa abre no Brasil e a busca de lugares continua disponível.
- O mapa depende da chave do Google configurada em Sistema › Maps; sem ela, ou em instalação sem saída para a internet, o modal avisa e diz a quem pedir.
Entidade que o contexto não tem — a plataforma pergunta antes de trocar
Se a pergunta cita uma entidade que o modelo de dados do contexto não possui — "quais empresas de um contador possuem o mesmo endereço?" num contexto cujo grafo tem empresas, estabelecimentos, endereços e pessoas (sócios e administradores), mas não contadores —, o chat não responde com outra entidade em silêncio. Ele diz o que falta, propõe a entidade mais próxima do modelo de dados e pergunta:
Este contexto não possui a entidade contador. A mais próxima no modelo de dados é Pessoa (é a pessoa vinculada à empresa como sócia ou administradora). Quer que eu responda usando Pessoa no lugar de contador? A pergunta ficaria: Quais empresas de uma pessoa possuem o mesmo endereço? Responda sim para substituir ou não para manter a pergunta como está.
- Sim (ou "pode", "substitua") executa a pergunta reescrita; a resposta começa com "Substituindo contador por Pessoa, como você confirmou." e segue como qualquer outra — tabela, resumo, fontes.
- Não mantém a pergunta e o chat explica que, sem a substituição, ela não tem como ser respondida neste contexto.
- Qualquer outra mensagem descarta a proposta. A proposta também expira sozinha em 10 minutos.
A entidade proposta vem do esquema do próprio contexto, validada pela plataforma: nunca é um par fixo de configuração, então contextos novos, com modelos de dados diferentes, funcionam do mesmo jeito.
O contexto aprende com suas respostas. Cada "sim" e cada "não" ficam registrados no contexto: da próxima vez que alguém citar a mesma entidade ausente, o chat já propõe o mesmo par e diz "esta substituição já foi confirmada N vezes neste contexto" — e ainda assim pergunta, porque trocar a entidade muda a pergunta. Já os sinônimos de propriedade ("razão social" é o nome da empresa, "capital" é o capital social) valem por padrão, sem pergunta: quando o modelo lê um termo seu como uma propriedade do modelo de dados, a plataforma confere que ela existe e guarda o sinônimo para as próximas perguntas. Quem administra o contexto vê tudo isso em Sistema › Contextos › Substituições aprendidas, pode adicionar um sinônimo à mão e "esquecer" o que não fizer mais sentido; um par cujo label ou propriedade deixou de existir no modelo de dados aparece como obsoleto e não é sugerido.
Onde ler mais
- Páginas relacionadas: prompt personalizado do usuário · modelo de raciocínio do chat
- Arquitetura da fusão de rankings: quill-search-suggest; o comportamento do chat (modo listagem, página âncora e modo conversa) está detalhado na documentação de arquitetura do chat.