Pular para o conteúdo principal

Chat com documentos

O recurso permite pesquisar documentos enviados e passar trechos relevantes ao contexto do chat.

Arquivos compatíveis

Envios atuais:

  • PDF (com procedência por página)
  • Texto simples e logs
  • Markdown (.md, .markdown, .mdx, com procedência por seção)
  • HTML
  • Word (.docx)
  • Apresentações (.pptx, por slide)
  • Planilhas (.xlsx, por planilha) e CSV/TSV
  • Código-fonte (TypeScript, Python, Go, Rust, SQL, YAML e outras linguagens comuns)
  • Imagens (.png, .jpg, .webp, .gif) — o modelo de visão configurado lê o texto (Configurações → Padrões → Modelo de visão)
  • Áudio (.wav, .webm) — transcrito pelo provedor STT sob o mesmo controle da entrada de voz
  • Tamanho máximo: 10 MB

Formatos Office são descompactados por um analisador limitado do próprio repositório; nenhuma biblioteca de documentos de terceiros roda no servidor. Bytes idênticos no mesmo escopo são deduplicados.

Extração de imagem e áudio usa provedores já configurados. Não há OCR ou mecanismo de voz local incluído, e nada sai da instância além da chamada ao modelo escolhido. Um PDF digitalizado recupera suas imagens JPEG e as lê pelo modelo de visão com procedência por página. Digitalizações CCITT fax ou JBIG2 ainda não produzem texto. Sem modelo de visão ou STT, o envio é marcado como falho e o motivo aparece em Configurações → Documentos.

Os arquivos são processados no backend e armazenados com os demais dados.

Modos de busca

ModoQuando usadoObservações
Busca por palavra-chaveSempre disponívelClassificação BM25, sem exigir embedding
Busca híbridaEmbeddings ativadosCombina classificação vetorial e BM25 por reciprocal-rank fusion

Com embeddings, cada consulta executa e mescla ambas as classificações: uma correspondência exata pode superar um trecho semanticamente semelhante, mas vago, e trechos ainda em processamento continuam acessíveis pelo lado lexical. Se embeddings falharem ou estiverem desativados, a busca usa somente palavras-chave.

A pontuação lexical ocorre em memória sobre os trechos acessíveis. O Libre não mantém um índice de texto completo no disco, pois o texto está criptografado e um índice persistiria texto simples ao lado do cifrado. Um trecho só entra se contiver integralmente pelo menos uma palavra da consulta; assim, ALPHA_BETA_GAMMA não retorna texto que compartilha apenas um fragmento.

Coleções compartilhadas com você participam automaticamente. O controle é aplicado dentro da consulta vetorial: permissões são publicadas na ACL, e revogar oculta os documentos já na busca seguinte sem reprocessar embeddings.

Ativar busca semântica

Instale um modelo:

ollama pull nomic-embed-text

Ative embeddings nas Configurações. É possível usar modelos locais Ollama ou plugins compatíveis.

Padrões:

  • Modelo: nomic-embed-text
  • Tamanho do trecho: 1000 caracteres
  • Sobreposição: 200 caracteres
  • Limite de similaridade: 0.3

Citações e modo de documento completo

Trechos recuperados carregam nome do arquivo, índice, pontuação e, quando há mapa, página, slide, planilha ou seção Markdown. O contexto rotula cada trecho, e o painel Fontes lista os locais citados.

Cada chat pode alternar para modo de documento completo. Em vez de trechos, todo o conteúdo extraído dos documentos no escopo é enviado. Uma proteção de tokens (FULL_DOCUMENT_CONTEXT_MAX_TOKENS, padrão 32000) protege a janela; se excedida, o chat volta à busca e explica o motivo.

Enviar e pesquisar

  1. Envie um arquivo compatível.
  2. Aguarde o processamento.
  3. Faça uma pergunta.
  4. O Libre WebUI recupera trechos relevantes e os inclui no contexto.

Exemplos:

Summarize the uploaded document in five bullets.
What deadlines are mentioned in the PDF?
Find the section that talks about pricing.
Compare the uploaded policy with this proposed change.

Endpoints da API

EndpointFinalidade
POST /api/documents/uploadEnviar documento
GET /api/documentsListar documentos
GET /api/documents/session/:sessionIdListar documentos de uma sessão
POST /api/documents/searchPesquisar
DELETE /api/documents/:documentIdExcluir
GET /api/documents/embeddings/statusVer estado dos embeddings
POST /api/documents/embeddings/regenerateRegenerar embeddings

Boas práticas

  • Mantenha os envios focados na tarefa.
  • Prefira PDFs com texto; digitalizações usam uma chamada do modelo por página.
  • Regenere embeddings após trocar o modelo.
  • Reduza o limite de similaridade se perder contexto útil.
  • Aumente se os resultados tiverem ruído.

Documentos relacionados