Domain Packs
A domain pack is the per-domain data bundle that everything downstream depends on: the base dataset that seeds the training mix, the base system prompt that becomes the avatar's runtime prompt, and the held-out questions that grade the finished adapter. This page covers the shape of an active pack and the separate, gated pipeline used to build new ones.
Active packs
An active pack is two files, both named after the domain_id.
Base dataset — state/config/domain_datasets/{domain_id}_base.json
{
"domain_id": "math",
"version": "1.0.0",
"description": "Базовий датасет для аватара-вчителя математики…",
"spoken_formula_note": "Всі математичні вирази записані у вигляді природного мовлення…",
"standalone": [ { "instruction": "…", "input": "", "output": "…" } ],
"rag_aware": [ { "instruction": "…", "context": "…", "output": "…" } ],
"sample_count": 41,
"base_system_prompt": "Use retrieved context as internal grounding only. …"
}
| Field | Role |
|---|---|
standalone | Examples answered from the model's own knowledge. |
rag_aware | Examples that must ground an answer in a supplied context block. |
sample_count | len(standalone) + len(rag_aware). Validated against the actual counts by domain.integrity. |
base_system_prompt | The domain's behavioural contract. Fed to Kimi as the summary anchor during generation, rewritten into the avatar's runtime prompt, and used as the system prompt for both sides of the LoRA evaluation. |
description, version, and any extra keys | Documentation only; not read by the pipeline. |
Content is per domain and may be non-English — the shipped math pack is Ukrainian and normalizes every formula into spoken form so it survives text-to-speech.
base_system_prompt is required in practice: LoRA evaluation refuses to run without it, and prompt rewriting falls back to it whenever the rewrite call fails.