Inspiration

A new user can name a few favorites, but a recommendation agent still needs to decide what to ask next. Inspired by uncertainty-aware machine learning and evaluation, TasteProbe turns Qloo's cultural evidence into a short, inspectable onboarding conversation.

What it does

Confirm two to four favorite movies, artists, or books in Live Qloo mode. The backend retrieves a separate movie ranking for each anchor. The agent selects follow-up films by expected model information gain, updates heuristic anchor weights after like/dislike answers, preserves them for unfamiliar answers, and stops after at most three questions or insufficient modeled gain. Final suggestions exclude asked films and expose separate per-anchor rank evidence. Users can correct an answer, delete a session, and export decision evidence.

Why Qloo is essential

Qloo supplies the entity identities and seed-specific cultural rankings that determine both the next question and the final shortlist. Without those rankings, the live policy has no taste evidence to act on. Synthetic mode is explicitly labeled and never silently replaces a failed live request. This is an explicit bounded policy agent, not an LLM chat wrapper; no LLM API is required.

How we built it

Python backend, HTML/CSS/JavaScript interface, and the official Qloo harness with server-side credentials. A Docker service runs on Render. Separate anchor rankings become heuristic utilities; an information-gain policy chooses a question, updates weights, and decides when to stop. Qloo-provided descriptions and years are retained when available. Sessions and cached rankings live in memory; ratings are exported voluntarily rather than collected in a research database. The public repository includes an MIT license and reproducible instructions.

What works today

A scripted walkthrough of the externally hosted app verified live entity search, two Qloo rankings, all three questions including an unfamiliar skip, final recommendations with evidence, and JSON export without the session access token. There are 37 passing local automated tests. The hosted walkthrough used The Matrix and Interstellar and returned Inception, The Prestige, and Back to the Future after the scripted answers. Rankings can change.

Evaluation and what we learned

We ran 8,000 clearly labeled generated trials across five seeds and four scenarios, with disjoint unasked evaluation candidates and adaptive, fixed, random, and immediate methods. Adaptive had lower average regret than fixed in matched, reversed, and frequent-skip scenarios at every seed. It performed worse for mixed tastes in three of five seeds. These are invented utilities and responses: zero human participants, zero live Qloo calls in the simulation, and no established user satisfaction improvement.

The app includes an optional consented paired pilot: randomized adaptive/fixed round order, the same frozen evidence snapshot, a disjoint recommendation holdout, and mixed final ratings. Human evaluation is pending; no participant results are claimed.

Challenges

Truncated rankings make missing evidence ambiguous, so questions require shared candidates rather than treating absence as dislike. Rank normalization and answer likelihoods are heuristics; weights are not calibrated enjoyment probabilities. Shared coverage can constrain novelty. The initial hosted live ranking retrieval took approximately a minute in our observed test, and the free hosting tier can sleep.

Impact and next steps

Our intended audience is discovery products onboarding users with sparse interaction history. The movie app demonstrates an adaptive taste-onboarding layer; an embeddable SDK and commercial integrations are future work. Next we will test stated fit with consenting participants, address mixed-taste failures, optimize latency, and eventually collect prospective feedback after viewing.

Try it

Live app: https://tasteprobe.onrender.com/ Public source and MIT license: https://github.com/Nourhan832/tasteprobe Select Live Qloo and confirm two favorites. Allow time for the free service and upstream rankings. The sample mode is synthetic and explicitly labeled.

Built With

Share this project:

Updates

Submission history