| name | r-ragnar |
| description | Use when code loads or uses ragnar (library(ragnar), ragnar::), implementing RAG in R, creating vector stores, embedding documents for semantic search, or building retrieval pipelines |
ragnar: Retrieval Augmented Generation in R
Overview
ragnar implements RAG in R. Create vector stores, embed documents, register retrieval tools with ellmer chat sessions. LLMs search your documents before answering.
Install: install.packages("ragnar")
References
Read references/API.md before writing code.
references/API.md - Complete function reference
references/package-docs.md - Vector store setup and usage
references/rag.md - RAG patterns and ellmer integration
When to Use
- LLM needs to search your documentation
- Implement semantic search over documents
- Create vector database from documents
- RAG workflows in R
When NOT to Use
- Just need keyword search (use grep/Grep tool)
- Documents fit in single prompt (<100k tokens)
- Building chatbot without document search (use r-ellmer only)
Quick Reference
library(ragnar)
docs <- read_as_markdown("docs/")
chunks <- markdown_chunk(docs)
store <- ragnar_store_create("docs.duckdb")
ragnar_store_insert(store, chunks)
library(ellmer)
chat <- chat_openai()
ragnar_register_tool_retrieve(chat, store)
chat$chat("What does the documentation say about...?")
store <- ragnar_store_create("local.duckdb",
embed = ragnar_embed_ollama(model = "nomic-embed-text"))
Common Mistakes
| Issue | Solution |
|---|
| Embedding mismatch | Store and retrieval must use same provider |
| Store not registered | Call ragnar_register_tool_retrieve(chat, store) |
| Ollama embeddings not working | Start ollama serve first |
| Poor retrieval quality | Check chunking strategy, embedding model |
Core Functions
Store Management:
ragnar_store_create(): Create vector database
ragnar_store_connect(): Connect to existing store
ragnar_store_insert(): Add documents
Document Processing:
read_as_markdown(): Read documents
markdown_chunk(): Split into chunks
Integration:
ragnar_register_tool_retrieve(): Register with ellmer
ragnar_embed_ollama(): Local embeddings
Advanced
See references/ for:
- API.md: Complete function reference
- rag.md: RAG workflow details
- Package docs: Full package documentation
Integration
With ellmer: ragnar_register_tool_retrieve(chat, store)
With vitals (evaluation): See r-vitals skill for RAG testing
Cross-package patterns: See r-ai meta-skill