Inspiration
SetLog — Production Memory Agent
The Story Behind the Build
💡 Inspiration
Film production in Nigeria is chaos. As co-owners of a business in Lagos, we've seen firsthand how small crews and big productions alike drown in spreadsheets, WhatsApp threads, and scattered call sheets. A prop master needs to know if the vintage camera for Scene 12 is available — but that answer lives in a Google Sheet, updated by someone else, who might be on set without internet.
We built SetLog because we believe film crews should talk to their data the way they talk to each other. No SQL. No pivot tables. Just ask.
"What props are needed for Scene 12 and are they available?"
"Which scenes are bleeding the props budget?"
"Who's scheduled for the shoot tomorrow?"
These aren't database queries. They're conversations. SetLog makes them exactly that.
🚀 What It Does
SetLog is an AI Production Memory Agent that lets film crews ask natural-language questions about their production and get instant, accurate answers powered by ClickHouse analytics.
It handles the messy middle: interpreting vague production language ("checked out," "over budget," "scheduled for tomorrow"), reasoning over a complex production schema, generating optimized ClickHouse SQL, and synthesizing the raw data back into plain English.
The result? A single chat interface where a director, producer, or PA can get budget variances, prop availability, crew schedules, and location logistics — all in under a second.
🛠️ How We Built It
- Frontend: A dark-themed Streamlit dashboard with a chat interface, animated "agent thinking" states, SQL syntax highlighting, and collapsible raw data views.
- Agent Backend: A Flask API that orchestrates two Gemini-powered stages — first, natural language to ClickHouse SQL; second, raw results to human-friendly narrative.
- Database: ClickHouse Cloud — chosen specifically for its ability to crunch analytical queries (budget rollups, inventory status across scenes, scheduling joins) at production speed.
- Resilience: We built a 9-model Gemini fallback chain (
3.6-flash-latest→3.6-flash-001→2.5-flash-latest→1.5-flash-latest...) that auto-detects deprecated models on startup. The app never breaks because Google renamed a model.
😤 Challenges We Ran Into
- The Gemini Model Apocalypse: Mid-hackathon, Google deprecated
gemini-2.0-flash. Our app went from working to a red404 NOT_FOUNDerror overnight. We had to build a bulletproof model resolver that tests candidates live and falls back automatically — because hackathon demos don't get second chances. - Schema Reasoning: Teaching an LLM that "checked out" maps to
availability_status = 'checked_out'and "over budget" maps tospent > allocatedrequired deep prompt engineering and explicit schema context injection. - One Laptop, Two Servers: We built and tested the entire stack — Streamlit frontend, Flask backend, and ClickHouse Cloud — on a single HP laptop in a shop in Computer Village, Lagos. When the power flickered, we kept going.
🏆 Accomplishments We're Proud Of
- It actually works. Ask a question in English, get a real answer from real data. No mockups. No hardcoded responses.
- We survived a live API deprecation. While other teams panicked when Google killed their model, our app silently auto-healed and kept running.
- ClickHouse integration is real. Our budget variance queries, prop inventory lookups, and crew scheduling joins run in milliseconds against a live cloud database — not a local SQLite file.
- Built in Lagos, for the world. This isn't a Silicon Valley toy. It's a tool designed for the realities of film production in emerging markets — unreliable internet, small crews wearing multiple hats, and the need for speed.
📚 What We Learned
- ClickHouse is built for this. The columnar storage and vectorized execution mean that even complex multi-table joins across scenes, props, crew, and budgets feel instant. For production data that changes by the hour, that's a superpower.
- Agent design is 80% schema design. The cleaner your database schema and the better your metadata descriptions, the more accurate the AI's query generation becomes. Garbage schema in, hallucinated SQL out.
- Resilience beats perfection. A hackathon demo that gracefully degrades is better than a fragile masterpiece. Our model fallback system is ugly under the hood — and bulletproof in production.
🔮 What's Next for SetLog
- WhatsApp Integration: Bring the agent into WhatsApp Business so crew members on set can query production data from their phones — no laptop required.
- Predictive Analytics: Use ClickHouse's time-series capabilities to forecast budget overruns before they happen.
- Multi-Modal Inputs: Upload call sheets and prop lists as images or PDFs and ask questions about them directly.
- Role-Based Access: A prop master sees prop data. A producer sees budget summaries. Same chat, different lens.
🧱 Built With
- ClickHouse Cloud — Blazing-fast analytical database for production data
- Google Gemini API — LLM powering natural language understanding and SQL generation
- Python + Flask — Agent backend and API layer
- Streamlit — Interactive frontend dashboard
- Custom CSS — Dark production-themed UI
🎬 The Bigger Picture
Film is storytelling. But behind every great story is a mountain of logistics — budgets, schedules, props, locations, crew. SetLog doesn't replace the humans who make movies. It removes the friction between their questions and their data, so they can spend less time querying spreadsheets and more time making art.
Ask your production anything.
Built for the Agentic Cinema Hackathon 2026 | ClickHouse Partner Track
From Lagos, Nigeria — for film crews everywhere.

Log in or sign up for Devpost to join the conversation.