How rafaelpierre/moviegpt works
MovieGPT collects movie metadata, builds a persisted semantic index, and uses that index with an LLM to produce recommendations through a CLI or FastAPI endpoint. The sampled code shows the data, indexing, prompt, and request paths; README documents CLI capabilities, while the web route is the sampled API entry point. The index and model integrations are implemented through LlamaIndex, so their internal details are not shown here.
Main entry points: rag.py RAG Query · client.py CLI Workflows · web.py Generate API · utils.py Movie Data Fetch
Components 12
Metadata Ingestion
- Movie Data Fetch
src/moviegpt/data/utils.py - Movie Metadata
src/moviegpt/data/utils.py
Recommendation RAG
- Index Builder
src/moviegpt/providers/rag.py - Persisted Vector Index
src/moviegpt/providers/rag.py - Recommendation Prompt
src/moviegpt/prompts/recommendation.py - RAG Query
src/moviegpt/providers/rag.py
User Interfaces
- CLI Workflows
src/moviegpt/client.py - Generate API
src/moviegpt/api/web.py - Web Launcher
src/moviegpt/api/server.py
External Services
- Movie Data Source
- OpenAI Models
Other components
- User
Connections 17
- User → CLI Workflows: runs commands
README.md - CLI Workflows → Movie Data Fetch: downloads data
src/moviegpt/client.py - Movie Data Fetch → Movie Data Source: fetches decades
src/moviegpt/data/utils.py - Movie Data Fetch → Movie Metadata: returns records
src/moviegpt/data/utils.py - CLI Workflows → Index Builder: creates index
src/moviegpt/client.py - Index Builder → Persisted Vector Index: persists index
src/moviegpt/providers/rag.py - Index Builder → OpenAI Models: embeds documents
src/moviegpt/providers/rag.py - CLI Workflows → RAG Query: queries recommendations
src/moviegpt/client.py - User → Generate API: submits details
README.md - CLI Workflows → Web Launcher: starts web server
src/moviegpt/client.py - Web Launcher → Generate API: launches app
- Generate API → Recommendation Prompt: builds prompt
src/moviegpt/api/web.py - Generate API → RAG Query: requests answer
src/moviegpt/api/web.py - RAG Query → Recommendation Prompt: formats input
src/moviegpt/providers/rag.py - RAG Query → Persisted Vector Index: loads index
src/moviegpt/providers/rag.py - RAG Query → OpenAI Models: generates answer
src/moviegpt/providers/rag.py - RAG Query → Generate API: returns answer
src/moviegpt/api/web.py