trustgraph/docs/tech-specs/explainability-cli.pt.md
Alex Jenkins 8954fa3ad7 Feat: TrustGraph i18n & Documentation Translation Updates (#781)
Native CLI i18n: The TrustGraph CLI has built-in translation support
that dynamically loads language strings. You can test and use
different languages by simply passing the --lang flag (e.g., --lang
es for Spanish, --lang ru for Russian) or by configuring your
environment's LANG variable.

Automated Docs Translations: This PR introduces autonomously
translated Markdown documentation into several target languages,
including Spanish, Swahili, Portuguese, Turkish, Hindi, Hebrew,
Arabic, Simplified Chinese, and Russian.
2026-04-14 12:08:32 +01:00

8.4 KiB

layout title parent
default Especificação Técnica da Interface de Linha de Comando (CLI) para Explicabilidade Portuguese (Beta)

Especificação Técnica da Interface de Linha de Comando (CLI) para Explicabilidade

Beta Translation: This document was translated via Machine Learning and as such may not be 100% accurate. All non-English languages are currently classified as Beta.

Status

Rascunho

Visão Geral

Esta especificação descreve ferramentas de linha de comando para depurar e explorar dados de explicabilidade no TrustGraph. Essas ferramentas permitem que os usuários rastreiem como as respostas foram derivadas e depurem a cadeia de origem desde as arestas até os documentos de origem.

Três ferramentas de linha de comando:

  1. tg-show-document-hierarchy - Mostrar a hierarquia de documento → página → trecho → aresta
  2. tg-list-explain-traces - Listar todas as sessões GraphRAG com perguntas
  3. tg-show-explain-trace - Mostrar o rastreamento completo de explicabilidade para uma sessão

Objetivos

Depuração: Permitir que os desenvolvedores inspecionem os resultados do processamento de documentos Auditabilidade: Rastrear qualquer fato extraído de volta ao seu documento de origem Transparência: Mostrar exatamente como o GraphRAG derivou uma resposta Usabilidade: Interface de linha de comando simples com configurações padrão sensatas

Contexto

O TrustGraph possui dois sistemas de rastreabilidade:

  1. Rastreabilidade em tempo de extração (veja extraction-time-provenance.md): Registra os relacionamentos de documento → página → trecho → aresta durante a ingestão. Armazenado em um grafo chamado urn:graph:source usando prov:wasDerivedFrom.

  2. Explicabilidade em tempo de consulta (veja query-time-explainability.md): Registra a cadeia de pergunta → exploração → foco → síntese durante as consultas GraphRAG. Armazenado em um grafo chamado urn:graph:retrieval.

Limitações atuais: Não há uma maneira fácil de visualizar a hierarquia de documentos após o processamento É necessário consultar manualmente as triplas para ver os dados de explicabilidade Não há uma visão consolidada de uma sessão GraphRAG

Design Técnico

Ferramenta 1: tg-show-document-hierarchy

Propósito: Dado um ID de documento, percorrer e exibir todas as entidades derivadas.

Uso:

tg-show-document-hierarchy "urn:trustgraph:doc:abc123"
tg-show-document-hierarchy --show-content --max-content 500 "urn:trustgraph:doc:abc123"

Argumentos:

Arg Descrição
document_id URI do documento (posicional)
-u/--api-url URL do gateway (padrão: $TRUSTGRAPH_URL)
-t/--token Token de autenticação (padrão: $TRUSTGRAPH_TOKEN)
-U/--user ID do usuário (padrão: trustgraph)
-C/--collection Coleção (padrão: default)
--show-content Incluir conteúdo do blob/documento
--max-content Máximo de caracteres por blob (padrão: 200)
--format Saída: tree (padrão), json

Implementação:

  1. Consultar triplas: ?child prov:wasDerivedFrom <document_id> em urn:graph:source
  2. Consultar recursivamente os filhos de cada resultado
  3. Construir estrutura de árvore: Documento → Páginas → Blocos
  4. Se --show-content, buscar conteúdo da API do bibliotecário
  5. Exibir como árvore indentada ou JSON

Exemplo de Saída:

Document: urn:trustgraph:doc:abc123
  Title: "Sample PDF"
  Type: application/pdf

  └── Page 1: urn:trustgraph:doc:abc123/p1
      ├── Chunk 0: urn:trustgraph:doc:abc123/p1/c0
      │   Content: "The quick brown fox..." [truncated]
      └── Chunk 1: urn:trustgraph:doc:abc123/p1/c1
          Content: "Machine learning is..." [truncated]

Ferramenta 2: tg-list-explain-traces

Propósito: Listar todas as sessões (perguntas) do GraphRAG em uma coleção.

Uso:

tg-list-explain-traces
tg-list-explain-traces --limit 20 --format json

Argumentos:

Arg Descrição
-u/--api-url URL do gateway
-t/--token Token de autenticação
-U/--user ID do usuário
-C/--collection Coleção
--limit Resultados máximos (padrão: 50)
--format Saída: table (padrão), json

Implementação:

  1. Consulta: ?session tg:query ?text em urn:graph:retrieval
  2. Consulta de carimbos de data/hora: ?session prov:startedAtTime ?time
  3. Exibir como tabela

Exemplo de Saída:

Session ID                                    | Question                        | Time
----------------------------------------------|--------------------------------|---------------------
urn:trustgraph:question:abc123                | What was the War on Terror?    | 2024-01-15 10:30:00
urn:trustgraph:question:def456                | Who founded OpenAI?            | 2024-01-15 09:15:00

Ferramenta 3: tg-show-explain-trace

Propósito: Mostrar a cascata completa de explicabilidade para uma sessão GraphRAG.

Uso:

tg-show-explain-trace "urn:trustgraph:question:abc123"
tg-show-explain-trace --max-answer 1000 --show-provenance "urn:trustgraph:question:abc123"

Argumentos:

Arg Descrição
question_id URI da pergunta (posicional)
-u/--api-url URL do gateway
-t/--token Token de autenticação
-U/--user ID do usuário
-C/--collection Coleção
--max-answer Número máximo de caracteres para a resposta (padrão: 500)
--show-provenance Rastrear arestas para documentos de origem
--format Saída: text (padrão), json

Implementação:

  1. Obter o texto da pergunta do predicado tg:query
  2. Encontrar a exploração: ?exp prov:wasGeneratedBy <question_id>
  3. Encontrar o foco: ?focus prov:wasDerivedFrom <exploration_id>
  4. Obter as arestas selecionadas: <focus_id> tg:selectedEdge ?edge
  5. Para cada aresta, obter tg:edge (tripla entre aspas) e tg:reasoning
  6. Encontrar a síntese: ?synth prov:wasDerivedFrom <focus_id>
  7. Obter a resposta de tg:document através do bibliotecário
  8. Se --show-provenance, rastrear as arestas para os documentos de origem

Exemplo de Saída:

=== GraphRAG Session: urn:trustgraph:question:abc123 ===

Question: What was the War on Terror?
Time: 2024-01-15 10:30:00

--- Exploration ---
Retrieved 50 edges from knowledge graph

--- Focus (Edge Selection) ---
Selected 12 edges:

  1. (War on Terror, definition, "A military campaign...")
     Reasoning: Directly defines the subject of the query
     Source: chunk → page 2 → "Beyond the Vigilant State"

  2. (Guantanamo Bay, part_of, War on Terror)
     Reasoning: Shows key component of the campaign

--- Synthesis ---
Answer:
  The War on Terror was a military campaign initiated...
  [truncated at 500 chars]

Arquivos a Criar

Arquivo Propósito
trustgraph-cli/trustgraph/cli/show_document_hierarchy.py Ferramenta 1
trustgraph-cli/trustgraph/cli/list_explain_traces.py Ferramenta 2
trustgraph-cli/trustgraph/cli/show_explain_trace.py Ferramenta 3

Arquivos a Modificar

Arquivo Alteração
trustgraph-cli/setup.py Adicionar entradas de console_scripts

Notas de Implementação

  1. Segurança do conteúdo binário: Tente decodificar UTF-8; se falhar, mostre [Binary: {size} bytes]
  2. Truncamento: Respeite --max-content/--max-answer com indicador [truncated]
  3. Triplas entre aspas: Analise o formato RDF-star a partir do predicado tg:edge
  4. Padrões: Siga os padrões de CLI existentes a partir de query_graph.py

Considerações de Segurança

Todas as consultas respeitam os limites de usuário/coleção Autenticação por token suportada via --token ou $TRUSTGRAPH_TOKEN

Estratégia de Teste

Verificação manual com dados de amostra:

# Load a test document
tg-load-pdf -f test.pdf -c test-collection

# Verify hierarchy
tg-show-document-hierarchy "urn:trustgraph:doc:test"

# Run a GraphRAG query with explainability
tg-invoke-graph-rag --explainable -q "Test question"

# List and inspect traces
tg-list-explain-traces
tg-show-explain-trace "urn:trustgraph:question:xxx"

Referências

Explicabilidade em tempo de consulta: docs/tech-specs/query-time-explainability.md Proveniência em tempo de extração: docs/tech-specs/extraction-time-provenance.md Exemplo de CLI existente: trustgraph-cli/trustgraph/cli/invoke_graph_rag.py