haiku.rag/app
Yiorgis Gozadinos 65f1339aa0
vb
2026-06-23 16:59:00 +03:00
..
backend vb 2026-06-23 16:59:00 +03:00
frontend Fix frontend selection collisions, stale fetches, and URL consistency 2026-04-24 17:17:28 +03:00
.env.example Update docs for app 2026-01-13 12:18:13 +02:00
docker-compose.dev.yml Adapt to haiku.skills streaming sub-agent ag-ui events 2026-03-03 11:16:44 +02:00
docker-compose.yml Mount haiku.rag.yaml config in docker compose 2026-01-12 12:36:30 +02:00
haiku.rag.yaml.example replace fixed-radius expansion with section-bounded algorithm 2026-04-16 12:11:53 +03:00
README.md replace fixed-radius expansion with section-bounded algorithm 2026-04-16 12:11:53 +03:00

haiku.rag Chat App

A conversational RAG interface built with CopilotKit and pydantic-ai's AG-UI protocol.

Prerequisites

  • Docker and Docker Compose
  • A haiku.rag database (created via the haiku-rag CLI)
  • An LLM API key (Anthropic, OpenAI, or local Ollama)

Quick Start

  1. Set up environment variables:

    cp .env.example .env
    # Edit .env with your API keys and database path
    
  2. Configure the LLM and embedding models:

    cp haiku.rag.yaml.example haiku.rag.yaml
    # Edit haiku.rag.yaml to configure your models
    
  3. Start the app:

    docker compose up -d
    
  4. Open the chat interface: http://localhost:3000

Configuration

Environment Variables

Variable Description Required
DB_PATH Path to your haiku.rag LanceDB database Yes
ANTHROPIC_API_KEY Anthropic API key One LLM key required
OPENAI_API_KEY OpenAI API key One LLM key required
OLLAMA_BASE_URL Ollama server URL (default: http://host.docker.internal:11434) For local models
LOGFIRE_TOKEN Pydantic Logfire token for debugging No

haiku.rag.yaml

Configure the LLM, embeddings, and search settings:

qa:
  model:
    provider: anthropic  # or openai, ollama
    name: claude-sonnet-4-20250514

embeddings:
  model:
    provider: ollama
    name: nomic-embed-text

search:
  limit: 10

See haiku.rag.yaml.example for all options.

Development

For local development with hot reloading:

docker compose -f docker-compose.dev.yml up -d --build

Architecture

┌─────────────────┐     ┌─────────────────┐     ┌─────────────────┐
│    Frontend     │────▶│     Backend     │────▶│   haiku.rag     │
│  (CopilotKit)   │     │  (pydantic-ai)  │     │   (LanceDB)     │
│  localhost:3000 │     │  localhost:8001 │     │                 │
└─────────────────┘     └─────────────────┘     └─────────────────┘

Backend Endpoints

Endpoint Method Description
/v1/chat/stream POST AG-UI chat streaming
/api/documents GET List documents in database
/api/info GET Database statistics
/api/visualize/{chunk_id} GET Visual grounding for chunks
/health GET Health check

Chat Capabilities

The chat can:

  • Search your documents with hybrid vector + full-text search
  • Answer questions with citations from your knowledge base
  • Filter by document when you ask about specific files
  • Show visual grounding for PDF/image sources