RAG with haiku.rag¶
Transform oterm into a powerful RAG (Retrieval-Augmented Generation) system by integrating with haiku.rag (from 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.