Model card · Updated August 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
- 500 tokens max per reply — the avatar converses, it doesn’t lecture.
- Sampling
- Temperature 0.5 on OpenAI; Claude models run at their defaults (current Claude APIs don’t accept sampling parameters).
- Rate limit
- 30 requests per minute per visitor, enforced in middleware.
- 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.
- Personalization signals — inferred communication style, formality, and technical-depth preferences, plus topics you’ve shown interest in.
- Retrieved documents about Chris from a knowledge base, when relevant to your message.
- Formatting instructions — including the directive to use the personalization naturally without announcing it, and to append a one-word sentiment tag (stripped before display, used to drive the avatar’s face).
The conversation history you’ve typed in the current session is sent with each request. The model has no live access to your account data, the internet, or anything beyond this assembled context.
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.
- 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.