haiku.rag

RAG agêntico sobre seus próprios documentos em um LanceDB embarcado, sem servidor de banco de dados para executar. Busca híbrida com reclassificação, análise Docling para PDFs e mais de 40 formatos, recuperação multimodal e respostas citadas com números de página e títulos de seção.

Documentação

haiku.rag

PyPI Python Downloads Docs Tests codecov

RAG agêntico que responde perguntas sobre seus próprios documentos com citações a números de página e títulos de seção. Executa localmente em um banco de dados embutido, sem necessidade de servidor.

Construído sobre LanceDB, Pydantic AI e Docling. Documentação completa em ggozad.github.io/haiku.rag.

Novo: busca por visão e multimodal. A ingestão ciente de imagens captura bytes de figuras embutidas; modelos de QA com capacidade de visão os recebem junto com o texto. Embedders multimodais colocam vetores de imagens no mesmo espaço que o texto, permitindo consulta por texto → resultados de figuras e recuperação por imagem como consulta.

Recursos

  • Pesquisa híbrida — Vetor + texto completo com fusão de classificação recíproca (Reciprocal Rank Fusion)
  • Pesquisa multimodal e entre modalidades — Embedders multimodais (vLLM, VoyageAI, Cohere) colocam vetores de imagens no mesmo espaço que o texto; suporta consulta por texto → resultados de figuras e imagem como consulta
  • Resposta a perguntas — Capacidade de RAG com citações (números de página, títulos de seção)
  • QA com visão — Modelos com capacidade de visão recebem bytes de figuras junto com o texto dos chunks; anexe suas próprias imagens a perguntas em ask, analyze, MCP e no TUI de chat
  • Reclassificação — cross-encoders locais, Cohere, Zero Entropy ou vLLM
  • Capacidade de análise — Tarefas analíticas complexas via execução de código Python em sandbox (agregação, computação, análise de múltiplos documentos)
  • Compactação de evidências — Capacidade opcional que substitui os resultados de busca de perguntas anteriores na solicitação pelas evidências citadas, para que conversas longas parem de reenviar tudo o que recuperaram
  • Política de citação — Capacidade opcional que exige que cada resposta declare o que a fundamenta, incluindo declarar que nada a fundamenta
  • RAG conversacional — TUI de chat e aplicação web para conversas de múltiplas voltas com memória de sessão
  • Estrutura de documentos — Armazena o DoclingDocument completo, permitindo expansão de contexto ciente da estrutura
  • Múltiplos provedores — Embeddings: Ollama, OpenAI, VoyageAI, Cohere, LM Studio, vLLM (multimodal via multimodal: true em vLLM/VoyageAI/Cohere). QA: qualquer modelo suportado pelo Pydantic AI
  • Local-first — LanceDB embutido, sem necessidade de servidores. Também suporta S3, GCS, Azure e LanceDB Cloud
  • CLI e API Python — Funcionalidade completa a partir da linha de comando ou código
  • Servidor MCP — Exponha como ferramentas para assistentes de IA (Claude Desktop, etc.)
  • Fundamentação visual — Veja chunks destacados nas imagens das páginas originais
  • Ingestor de produção — Serviço haiku-ingester de longa duração com fila SQLite persistente, pool de trabalhadores assíncronos com tentativas e fila de mensagens mortas, adaptadores de fonte FS / HTTP / S3 / WebDAV, plano de controle FastAPI e painel de navegador para operadores. Veja docs/ingester.md.
  • Tags — Nomeie estados do banco de dados com haiku-rag tag e reverta para eles
  • Inspetor — TUI para navegar por documentos, chunks e resultados de busca

Instalação

Requer Python 3.12 ou mais recente

Pacote Completo (Recomendado)

pip install haiku.rag

Inclui todos os recursos: processamento de documentos, todos os provedores de embeddings e reclassificadores.

Usando uv? uv pip install haiku.rag

Pacote Enxuto (Dependências Mínimas)

pip install haiku.rag-slim

Instale apenas os extras que você precisa. Veja a documentação de Instalação para as opções disponíveis.

Início Rápido

Nota: Requer um provedor de embeddings (Ollama, OpenAI, etc.). Veja o Tutorial para instruções de configuração.

# Index a PDF
haiku-rag add-src paper.pdf

# Search
haiku-rag search "attention mechanism"

# Ask questions with citations
haiku-rag ask "What datasets were used for evaluation?"

# Ask about an image (vision-capable model)
haiku-rag ask "Does this figure match the spec in the design doc?" --image figure.png

# Analyze — complex analytical tasks via code execution
haiku-rag analyze "How many documents mention transformers?"

# Interactive chat — multi-turn conversations with memory
haiku-rag chat

# Continuously ingest from configured sources (FS, HTTP, S3, WebDAV)
haiku-ingester serve

Veja Configuração para opções de personalização.

API Python

from haiku.rag.client import HaikuRAG

async with HaikuRAG("knowledge.lancedb", create=True) as rag:
    # Index documents
    await rag.create_document_from_source("paper.pdf")
    await rag.create_document_from_source("https://arxiv.org/pdf/1706.03762")

    # Search — returns chunks with provenance
    results = await rag.search("self-attention")
    for result in results:
        print(f"{result.score:.2f} | p.{result.page_numbers} | {result.content[:100]}")

    # QA with citations
    answer, citations = await rag.ask("What is the complexity of self-attention?")
    print(answer)
    for cite in citations:
        print(f"  [{cite.chunk_id}] p.{cite.page_numbers}: {cite.content[:80]}")

Para composição direta de agentes, veja a documentação de capacidades.

Servidor MCP

Use com assistentes de IA como Claude Desktop:

haiku-rag mcp --stdio

Adicione à sua configuração do Claude Desktop:

{
  "mcpServers": {
    "haiku-rag": {
      "command": "haiku-rag",
      "args": ["mcp", "--stdio"]
    }
  }
}

Fornece ferramentas para gerenciamento de documentos, busca, QA e análise diretamente no seu assistente de IA.

Exemplos

Veja o diretório de exemplos para exemplos funcionais:

  • Configuração Docker - Implantação Docker completa com ingestão contínua (haiku-ingester) e servidor MCP
  • Aplicação Web - RAG conversacional full-stack com frontend CopilotKit

Documentação

Documentação completa em: https://ggozad.github.io/haiku.rag/

Licença

Este projeto é licenciado sob a Licença MIT.

mcp-name: io.github.ggozad/haiku-rag