Case Study

The Criterion Companion

In order to flesh out use cases and harden Saucer.AI, we needed a useful real-life application as our test bed. RAG-style flows, a chat LLM, and interaction between tools and context were all valid use cases to support. Being a lifelong film lover, what better application than a collection of film data. And so, The Criterion Companion was born.

Saucer.AI ASP.NET qDrant Live Demo
Try the Demo

Built entirely on Saucer.AI

The application is built 100% with Saucer.AI running on ASP.NET, with qDrant handling semantic search. The frontend is pure TypeScript and CSS — no frontend framework. Beyond Saucer.AI and qDrant, there are no other dependencies. The demo is live and demonstrates what Saucer.AI can do as an orchestration platform.


Cineguide

An LLM-powered cinema companion for all things Criterion. Cineguide demonstrates Saucer.AI's orchestration, tool calling, and multi-agent capabilities in a conversational interface.

criterion.martianworkshop.com
Cineguide home screen with suggested topics and recent discussions

LLM conversations

Full conversational interface with async responses during orchestrations. Chat history is loaded as external context, and sessions persist across visits.

Live model switching

Switch between LLM providers mid-conversation. The same session context translates seamlessly between Claude, GPT, and Gemini — Saucer's canonical message types in action.

AgentTool calls

Film lookups, semantic searches, collection management — all executed through Saucer's [AgentTool] system. The LLM decides which tools to call and when.

Multi-agent awareness

Cineguide can view the context of other agents. It reads past searches from Film Finder and understands what the user has been exploring — Saucer's built-in support for multi-agent development.

Application dominion

Limited but deliberate control over the application. Cineguide can rename chat titles, view the user's Criterion Closet, and add or remove titles from their favorites on request.

Cineguide — Fellini's Visual Style & Criterion Films
Cineguide conversation about Fellini with film cards inline

Cineguide responding to a query about Fellini — tool calls retrieve film data and render inline cards.


Film Finder

Semantic RAG-style search powered by Saucer.AI. The LLM interprets search queries, corrects misspellings, removes superfluous terms, and adapts the wording to better align with filmic language captured in qDrant's vector store.

Film Finder — European WW2 films
Film Finder search results for European WW2 films with interpretation and refinement chips

The LLM interprets "European WW2 films" and offers refinement suggestions. Results include semantic match explanations.

Film Finder's search results are exposed to Cineguide, demonstrating Saucer's built-in ability for multi-agent development. A user can search for films in Film Finder, then switch to Cineguide and ask questions about what they found — the context carries over.

The interpretation step is key. Rather than passing raw user input to the vector store, the LLM first normalizes the query — correcting "WW2" to "World War II", inferring that "European" means films set in or about Europe, and suggesting refinements like "Holocaust films" or "anti-war films" that narrow the semantic space.

Film Details — Ikiru
Film detail modal showing Ikiru with poster, description, and cast

My Criterion Closet

A personal collection manager for Criterion films. Track what you've watched, what you own, and what you want to see next. Built for completeness as a functional feature, but also as another surface for agent interaction.

My Criterion Closet
Criterion Closet grid view with film posters, sorting, and filter options

The Closet with filtering by favorites, watched, wishlist, and ownership. Cineguide has access to this data and can add entries on request.


For You

A placeholder for semantic recommendations based purely on vector similarity. The idea: rather than recommending films by genre or director taxonomy, look at what a user is drawn to in vector space and find films with similar embeddings — regardless of traditional categories. A viewer drawn to early Fellini might not connect with his later work, and vice versa. The embeddings would capture that nuance where taxonomies cannot.

This feature is out of scope for the current Saucer.AI demo, but represents the direction the application could go with user data.


Try the Demo Built with Saucer