feat(ml): prompt registry + per-request variant selection
Replaces the hardcoded "v1" label with a real prompt registry:
ml/serving/prompts.py — keyed by version: v1 (baseline),
v2-mentor (calm/specific persona),
v3-few-shot (v1 persona + curated examples)
ml/serving/main.py — POST /generate accepts optional prompt_version,
422 on unknown, echoes the version actually used
back in the response
services/api/src/config.ts — TIP_PROMPT_VERSION: empty / single / comma-list
(uniform random per request)
services/api/src/routes/recommender.ts
— pickPromptVersion() drives selection; the
response's prompt_version (not a stale TS
constant) is what lands in tip_scores so the
#92 reward-analytics dashboard shows real
per-variant reaction rates
Closes #84.
Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>
This commit is contained in:
@@ -37,3 +37,11 @@ TODOIST_CLIENT_SECRET=
|
||||
NATS_URL=
|
||||
# How often the background scheduler refreshes Todoist tasks per active user (ms).
|
||||
TODOIST_SYNC_INTERVAL_MS=900000
|
||||
|
||||
# Tip prompt selection — empty = use ml/serving default (v1).
|
||||
# Pin a single variant: "v2-mentor"
|
||||
# Rotate uniformly across variants: "v1,v2-mentor,v3-few-shot"
|
||||
# Buckets show up in the admin reward-analytics dashboard (#92).
|
||||
TIP_PROMPT_VERSION=
|
||||
# Default version on the Python side when the API doesn't specify one.
|
||||
DEFAULT_PROMPT_VERSION=v1
|
||||
|
||||
Reference in New Issue
Block a user