Skip to content

RAG with haiku.rag

Transform oterm into a powerful RAG (Retrieval-Augmented Generation) system by integrating with haiku.rag (from the oterm's author'), a SQLite-based RAG library that works seamlessly with oterm through MCP.

What is haiku.rag?

haiku.rag is a comprehensive RAG library that:

  • Uses only SQLite (no external vector databases needed)
  • Supports 40+ file formats (PDF, DOCX, HTML, Markdown, code files, URLs)
  • Provides hybrid search (semantic + full-text) with Reciprocal Rank Fusion
  • Works with multiple embedding providers (Ollama, OpenAI, VoyageAI)
  • Offers built-in reranking and question-answering capabilities
  • Exposes functionality through MCP tools for seamless AI assistant integration

Configuration

Add the haiku-rag MCP server to your oterm configuration. Edit your config.json file (run oterm --data-dir to find its location) and add:

{
  "mcpServers": {
    "haiku-rag": {
      "command": "uvx",
      "args": [
        "haiku-rag",
        "serve",
        "--stdio",
        "--db",
        "/path/to/your/rag.db"
      ]
    }
  }
}

Replace /path/to/your/rag.db with the path where you want to store your RAG database.

Available RAG Tools

Once configured, oterm will have access to powerful RAG capabilities through these MCP tools:

  • Add documents: Upload text, files, or URLs to your knowledge base
  • List documents: View all documents in your RAG database
  • Delete documents: Remove documents from your knowledge base
  • Update documents: Modify existing documents
  • Search documents: Performs hybrid search on your knowledge base

Usage Examples

1. Building a Personal Knowledge Base

Start a new chat in oterm and use the RAG tools to build your knowledge base:

Add this document to my knowledge base: "Machine Learning is a subset of artificial intelligence that focuses on algorithms that can learn from data..."

2. Adding Files

You can add various file types:

Please add the PDF file at /Users/me/Documents/research_paper.pdf to my RAG database

3. Adding Web Content

Add content from URLs:

Add the content from https://example.com/article to my knowledge base

4. Searching Your Knowledge Base

Perform semantic searches:

Search my knowledge base for information about "neural networks"

5. Question Answering

Ask questions about your documents:

Based on my knowledge base, what are the main differences between supervised and unsupervised learning?

Advanced Configuration

Custom Embedding Providers

Configure haiku.rag to use different embedding providers, rerankers, models by setting environment variables. See haiku.rag documentation

{
  "mcpServers": {
    "haiku-rag": {
      "command": "uvx",
      "args": [
        "haiku-rag",
        "serve",
        "--stdio",
        "--db",
        "/path/to/rag.db"
      ],
      "env": {
        "EMBEDDINGS_PROVIDER": "ollama",
        "EMBEDDINGS_MODEL": "nomic-embed-text"
      }
    }
  }
}

Further Reading

Example Use Cases

Research Assistant

Build a personal research database by adding academic papers, articles, and notes. Ask questions across your entire research collection.

Documentation Helper

Index your project's documentation, code comments, and README files. Get instant answers about your codebase.

Learning Companion

Add course materials, textbooks, and learning resources. Create a personalized tutor that can answer questions about your study materials.