How adrian-sit/personal-movie-vault works
Personal Movie Vault is a local-first movie-history knowledge system. The workflow transforms hand-authored metadata into movie records and exact viewing aggregates, combines those with joined and semantically chunked personal notes, builds a local embedding index, then retrieves evidence and generates cited answers. It also exposes chat through a local web interface and includes retrieval evaluation. The sampled code supports the transformation, analytics, web calls, and evaluation calls; README statements support the broader RAG stages and local Ollama integration.
Main entry points: rag.py Ingest and chunk · yaml_to_json.py Metadata transform · run_retrieval_eval.py Retrieval evaluation · web.py Chat server
Components 16
Movie data
- Movie metadata
data/raw/movies.yaml - Personal notes
data/raw - Metadata transform
src/yaml_to_json.py - Viewing analytics
src/viewing_analytics.py - Movie records
data/processed/movies.json - Viewing statistics
data/processed/viewing_statistics.json
RAG system
- Ingest and chunk
src/rag.py - Local embeddings
src/rag.py - Local RAG index
src/rag.py - Retrieval strategies
src/rag.py - Answer generation
src/rag.py - Retrieval evaluation
eval/run_retrieval_eval.py
User interfaces
- Chat server
src/web.py - Chat interface
web/index.html
Other components
- Movie viewer
- Ollama API
Connections 22
- Movie viewer → Chat interface: asks through
README.md - Chat interface → Chat server: sends chat
- Chat server → Retrieval strategies: searches
src/web.py - Chat server → Answer generation: requests answer
src/web.py - Movie metadata → Metadata transform: reads
src/yaml_to_json.py - Metadata transform → Movie records: writes
src/yaml_to_json.py - Metadata transform → Viewing analytics: builds aggregates
src/yaml_to_json.py - Viewing analytics → Viewing statistics: returns statistics
README.md - Movie metadata → Ingest and chunk: joins by id
README.md - Personal notes → Ingest and chunk: parses and chunks
README.md - Movie records → Ingest and chunk: supplies metadata
README.md - Viewing statistics → Ingest and chunk: supplies exact counts
README.md - Ingest and chunk → Local embeddings: embeds chunks
README.md - Local embeddings → Ollama API: requests vectors
README.md - Ingest and chunk → Local RAG index: stores chunks and vectors
README.md - Local RAG index → Retrieval strategies: provides corpus
README.md - Retrieval strategies → Ollama API: embeds query
README.md - Retrieval strategies → Answer generation: returns ranked evidence
README.md - Answer generation → Ollama API: requests completion
README.md - Movie viewer → Retrieval evaluation: runs evaluation
- Retrieval evaluation → Retrieval strategies: evaluates search
eval/run_retrieval_eval.py - Retrieval evaluation → Answer generation: optionally generates
eval/run_retrieval_eval.py