PT EN
Voltar ao site

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 Chat (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árioA 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 Chat 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 fiscal
  • Qual o prazo para embargos de declaracao?
  • Empresas com socio em comum com CNPJ 12.345.678/0001-90
  • Decisoes 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

  1. Cada item mostra:
  2. Título do documento (ex.: "STJ — REsp 1.234.567/SP — Prescrição...")
  3. Fonte (STJ, CPC, LEF, ...)
  4. Score de relevância
  5. Ranks de cada algoritmo: BM25, kNN e Graph (quando aplicável)
  6. 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:

  1. 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.
  2. 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

AtalhoAção
Enter no campo de buscaExecuta a busca
ESC no painel de documentoFecha o painel
Clique no card de documentoAbre o painel de detalhe
Tab + Enter no cardAbre 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

SintomaCausa provávelAção
"Nenhum documento encontrado"Termo muito específico ou não indexadoReformule ou amplie o escopo
Resposta da IA vazia + ":("Modelo de IA temporariamente indisponívelTente novamente em 30 s; o aviso vem em português
Documento completo sem conteúdoDocumento sem trecho rastreávelPeça ao administrador uma reindexação
Sessão expirando toda horaFalha de sessão no navegadorReportar — corrigido em 2026-05-26

Busca no Chat — cards, página âncora e modo conversa

Desde 2026-05-28, o Chat 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çãoResultado
Pergunta de listagemCards + preview da IA (página âncora)
Clique no cardPainel com as propriedades do registro
Expandir resposta completaModo conversa (cards ocultos, texto integral)
← Voltar à página de resultadosPá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:

WorkspaceContexto
O que fazlimita a busca aos contextos dele, agrupa o histórico em seções e filtra quais painéis aparecemdentro do workspace, refina de quais bases a IA extrai a resposta
Onde apareceseletor à esquerda da área de escritaindicador 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 abrirAba criada
Painéis, na área de escritaPainé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 IAGrafo — 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. Esc recolhe 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 AgentesAgentes Personas — 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 SistemaSegurançaRoles e Permissões.
  • 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/4 quando 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 breadcrumb DATTA › 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

  1. 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.
  2. 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".
  3. 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 .csv com 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.
  4. 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.
  5. 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.
  6. 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

  1. 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.
  2. 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.
  3. 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.
  4. 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.
  5. 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.