How riku-afk/ai-rag works
AiRAG is a local document assistant with two principal workflows: ingest documents into a Redis vector index, then search that index or answer questions from retrieved context. The generation path also checks a semantic answer cache and maintains expiring Redis conversation history. Edges reflect calls visible in the supplied source excerpts or capabilities explicitly documented in the README; Redis and Ollama are external services. app.py is an unused placeholder.
Main entry points: generate.py RAG answer workflow · ingest.py Document vector index · query.py Retrieval test CLI · data Local documents
Components 18
Document ingestion
- Ingest and chunk
ingest.py - Ollama embeddings
ingest.py
Retrieval and answers
- Retrieval test CLI
query.py - Query embeddings
query.py - RAG answer workflow
generate.py - Context and sources
generate.py - Grounded prompt
generate.py - Semantic cache
generate.py - Session history
generate.py
Redis state
- Document vector index
ingest.py - Answer cache index
generate.py - Redis session keys
generate.py
Other components
- CLI user
- Local documents
data - Ollama service
- Ollama chat model
- Redis service
- Unused app placeholder
app.py
Connections 25
- CLI user → Ingest and chunk: runs ingestion
README.md - Local documents → Ingest and chunk: loads files
ingest.py - Ingest and chunk → Ollama embeddings: embeds chunks
ingest.py - Ollama embeddings → Ollama service: requests embeddings
ingest.py - Ingest and chunk → Document vector index: stores chunks
ingest.py - Document vector index → Redis service: uses Redis
ingest.py - CLI user → Retrieval test CLI: asks question
README.md - Retrieval test CLI → Query embeddings: creates embeddings
query.py - Query embeddings → Ollama service: requests embeddings
query.py - Retrieval test CLI → Document vector index: searches chunks
query.py - Document vector index → Redis service: uses Redis
- CLI user → RAG answer workflow: asks question
README.md - RAG answer workflow → Semantic cache: checks cache
generate.py - Semantic cache → Answer cache index: searches and stores
generate.py - Answer cache index → Redis service: uses Redis
generate.py - RAG answer workflow → Document vector index: retrieves chunks
generate.py - Document vector index → Redis service: uses Redis
- RAG answer workflow → Context and sources: formats retrieved chunks
generate.py - RAG answer workflow → Session history: loads and saves turns
generate.py - Session history → Redis session keys: reads and writes
generate.py - Redis session keys → Redis service: uses Redis
generate.py - RAG answer workflow → Grounded prompt: builds prompt
generate.py - Context and sources → Grounded prompt: supplies context
generate.py - Grounded prompt → Ollama chat model: generates answer
generate.py - RAG answer workflow → Semantic cache: caches answer
generate.py