Model card · Updated September 2026
Avatar Model Card.
Serious ML systems ship with a model card. The avatar is a side project, but it talks to real people, so it gets one too: what runs it, what it sees, what’s kept, and where it fails.
The System
The avatar is a conversational 3D character that answers as an AI version of Chris Richardson. A large language model generates every reply; the 3D layer adds voice, lip-sync, and facial expression driven by a sentiment tag the model itself appends to each response. It is a portfolio experiment in embodied AI, not a source of professional advice, and not the real Chris.
Model & Configuration
- Architecture
- Provider-agnostic chat layer; the serving model is a configuration switch, not a code change.
- Current provider
- OpenAI GPT-4o (default). Anthropic Claude (default model: Claude Opus) is the configured alternative; this page is updated when the switch is flipped.
- Reply budget
- 900 tokens max per reply: enough for an answer plus the tool calls behind it, and not enough for a lecture.
- Sampling
- Temperature 0.5 on OpenAI; Claude models run at their defaults (current Claude APIs don’t accept sampling parameters).
- Rate limit
- Per-visitor and per-address request limits, enforced on the server before any model is called. The exact numbers are deployment configuration, sized for conversation and not for scripts.
- Other AI use
- Book/film/music recommendation reasoning and taste analysis run on OpenAI models separately from chat; recommendation outputs are verified against a real books database before display.
What the Model Receives
Each reply is generated from a system prompt assembled per request, in layers:
- A fixed persona prompt: how the avatar speaks and behaves.
- Your name, if signed in.
- Your record, if signed in: the works you rated highest, the ones you said were not for you, your own average rating, and what a model fitted to those ratings has learned. Only works the shared catalogue can name appear; the rest are counted and never named. An empty record is described as empty.
- Notes on file about Chris: a short fact sheet, plus up to three notes matched to your message. When nothing matches, the model is told so and answers that it doesn’t know.
- Formatting instructions: how to use the notes, and two uppercase words appended to every reply (a gesture and a tone) that are stripped before display and drive the avatar’s gesture and face.
- A few tools: the avatar can ask the taste model for a recommendation, explain a pick, save something you want next, and record a rating you just gave it. Each one runs on the server against your account and is capped per message; signed out, the two that write are not offered.
The conversation history you’ve typed in the current session is sent with each request. Beyond that assembled context and the tools above, the model has no access to the internet or to any other part of your account: not your chat history from previous sessions, and not what the Discover feed has shown you.
What Gets Logged
- Chat exchanges (your messages, the reply, the sentiment tag), the model that served them, token usage, and which knowledge-base documents were retrieved, stored in the site’s database to improve responses and debug failures.
- Conversations also feed the site’s user-analysis features (interest and style inference) for signed-in users.
- Messages are processed by the AI provider (OpenAI or Anthropic) under their API terms; this site doesn’t train its own models on your data. The avatar’s spoken replies are synthesized by OpenAI, with Microsoft Azure Speech as the backup voice. The Privacy Policy lists every company involved.
- Retention and deletion follow the Privacy Policy: account data is deleted within 90 days of a closure request.
Known Failure Modes
Confident Error
The model states wrong things fluently, including facts about Chris. Treat specifics as unverified unless you can check them.
Persona Bleed
The avatar speaks as Chris but is a character built on a prompt. Its opinions approximate his; they are not commitments from the real person.
Tag Leakage
Rarely, the trailing sentiment word (POSITIVE / NEUTRAL / NEGATIVE) survives into the visible reply, or the expression mismatches the content.
Refusals & Boundaries
Some requests are declined by the provider’s safety systems or the persona’s own guidelines; the goal is to decline gracefully and in character, which doesn’t always succeed.
Evaluation, honestly stated: manual review of logged conversations and a rule that dishonest UI states get fixed or deleted. There is no formal eval suite for the avatar’s outputs yet. Building a small one is on the roadmap, and this line will change when it exists.