PeerUp AI Playground

Available template variables

Use ${'${variableName}'} in any prompt. They are substituted at call time.
${'${avatarName}'} ${'${gender}'} ${'${country}'} ${'${profession}'} ${'${professionMetadata}'} ${'${avatarPrompt}'} ${'${userName}'} ${'${cefrLevel}'} ${'${timezone}'} ${'${timeOfDay}'} ${'${todayDate}'} ${'${userLatestMemoryContext}'}

System prompts by English level

Prod dispatches by the user's English level. Beginner uses a full 19-rule legacy template per provider (Gemini-audio vs Bedrock-text). Intermediate and Advanced share a prose body and only differ by which task suffix gets appended. The user's level is set on the Users page.

Beginner — Gemini-audio path

Used when LLM = Gemini and the user's level is beginner (or anything not recognised). Contains the Task block inline.

Beginner — Bedrock-text path

Used when LLM = Bedrock and the user's level is beginner. Contains its own (shorter) Task block inline.

Intermediate — body

Used for intermediate users (both Gemini and Bedrock paths share this body). The task suffix below gets appended automatically — Gemini gets the transcript+message version, Bedrock gets the message-only version. Mirrors buildIntermediateAiReplyBody in prod.

Advanced — body

Used for advance users (both providers share this body, with the task suffix appended at runtime). Mirrors buildAdvancedAiReplyBody in prod.

Task suffix — Gemini-audio path

Appended after the intermediate/advanced body when LLM = Gemini. Enforces the {"transcript":"…","message":"…"} output schema. Beginner has its own copy inline.

Task suffix — Bedrock-text path

Appended after the intermediate/advanced body when LLM = Bedrock. Enforces the {"message":"…"} output schema (Bedrock gets transcript separately from the STT step).

User first-turn prompt

Injected as the first user message so the AI knows to start the conversation. Mirrors formatUserContentForIceBreaker.

Memory wrapper

Wraps the user's stored memory into a system message. Only used when the memory toggle is on.

First-message variants (intro turn shortcut)

Used by POST /chatWithAI/getAIReply when isIntro=true. The active variant comes from Settings.

Transcription-only prompt

Used by the Gemini-audio STT path when the main reply call doesn't return a transcript.

Suggested reply — base prompt

Powers the call screen's 💡 Suggest a reply button (POST /chatWithAI/getSuggestions). Mirrors prod's formatSystemContentForTip. Describes the user's persona — the LLM impersonates the user and proposes their next line, with the conversation history fed in roles-swapped. User-centric vars: ${'${userName}'}, ${'${interests}'}, ${'${englishLevel}'}, ${'${profession}'}, ${'${professionMetadata}'}.

Suggested reply — trendy-topic prompt

Used instead of the base prompt when the avatar carries discussion ${'${pointers}'} (trendy-topic mode). Mirrors formatTrendyTopicSystemContentForTip. Vars: ${'${topicName}'}, ${'${pointers}'}, ${'${profession}'}, ${'${professionMetadata}'}, ${'${englishLevel}'}.

Suggested reply — meaning add-on (Guiding Mode)

Appended to the suggestion prompt when Include meaning is ticked and the user has a non-English mother tongue. Forces the {"tips":"…","tipsMeaning":"…"} JSON shape. Var: ${'${motherTongue}'}.

Memory extraction prompt

Used at call-end only. Runs a separate Gemini-2.5-flash-lite pass against the user's turns to extract facts + episodic events, which then get merged into the user's stored memory. Mirrors prod's POST /memory/updateMemoryContextForAIChat.