init
This commit is contained in:
@@ -0,0 +1,60 @@
|
||||
"""Build the small, human-labelled route holdout set.
|
||||
|
||||
These utterances are not consumed by gen_route_data.py and must never be added
|
||||
to route_train.jsonl. Labels follow the daemon's current JSON-array contract.
|
||||
"""
|
||||
import json
|
||||
from pathlib import Path
|
||||
|
||||
from gen_route_data import ROUTE_SYSTEM, valid_actions
|
||||
|
||||
OUT = Path(__file__).resolve().parent / "data" / "route_eval.jsonl"
|
||||
CASES = [
|
||||
("напомни завтра позвонить врачу", [{"intent":"reminder","text":"позвонить врачу"}]),
|
||||
("запиши купить новые батарейки", [{"intent":"note","text":"купить новые батарейки"}]),
|
||||
("я только что полил цветы", [{"intent":"fact","key":"flowers","value":"полил"}]),
|
||||
("что такое обратный прокси", [{"intent":"query","text":"что такое обратный прокси"}]),
|
||||
("перезапусти медиасервер", [{"intent":"act","verb":"перезапустить медиасервер"}]),
|
||||
("который сейчас час", [{"intent":"system"}]),
|
||||
("как у тебя дела", [{"intent":"chat","text":"как у тебя дела"}]),
|
||||
("сохрани адрес мастерской", [{"intent":"note","text":"адрес мастерской"}]),
|
||||
("напомни проверить резервную копию вечером", [{"intent":"reminder","text":"проверить резервную копию"}]),
|
||||
("сервер снова доступен", [{"intent":"fact","key":"server","value":"доступен"}]),
|
||||
("почему контейнер постоянно перезапускается", [{"intent":"query","text":"почему контейнер постоянно перезапускается"}]),
|
||||
("выключи свет на кухне", [{"intent":"act","verb":"выключить свет на кухне"}]),
|
||||
("очисти свою память", [{"intent":"system"}]),
|
||||
("ну и денёк сегодня", [{"intent":"chat","text":"ну и денёк сегодня"}]),
|
||||
("запомни, что код от калитки изменился", [{"intent":"note","text":"код от калитки изменился"}]),
|
||||
("я закончил отчёт", [{"intent":"fact","key":"report","value":"закончил"}]),
|
||||
("покажи свободное место на диске", [{"intent":"act","verb":"показать свободное место на диске"}]),
|
||||
("какая погода ожидается утром", [{"intent":"query","text":"какая погода ожидается утром"}]),
|
||||
("напомни через час достать бельё", [{"intent":"reminder","text":"достать бельё"}]),
|
||||
("приятно снова тебя слышать", [{"intent":"chat","text":"приятно снова тебя слышать"}]),
|
||||
("напомни купить молоко и запиши что кофе закончился", [
|
||||
{"intent":"reminder","text":"купить молоко"},
|
||||
{"intent":"note","text":"кофе закончился"}]),
|
||||
("проверь диск и потом напомни посмотреть результат", [
|
||||
{"intent":"act","verb":"проверить диск"},
|
||||
{"intent":"reminder","text":"посмотреть результат"}]),
|
||||
("я принял лекарство, запиши дозировку пять миллиграммов", [
|
||||
{"intent":"fact","key":"medicine","value":"принял"},
|
||||
{"intent":"note","text":"дозировка пять миллиграммов"}]),
|
||||
]
|
||||
|
||||
|
||||
def main() -> None:
|
||||
lines = []
|
||||
for utterance, actions in CASES:
|
||||
assert valid_actions(actions)
|
||||
lines.append(json.dumps({"messages": [
|
||||
{"role":"system","content":ROUTE_SYSTEM},
|
||||
{"role":"user","content":utterance},
|
||||
{"role":"assistant","content":json.dumps(actions, ensure_ascii=False)},
|
||||
], "intents":[a["intent"] for a in actions], "source":"human/route-eval"},
|
||||
ensure_ascii=False))
|
||||
OUT.write_text("\n".join(lines) + "\n", encoding="utf-8")
|
||||
print(f"wrote {len(lines)} held-out route cases -> {OUT}")
|
||||
|
||||
|
||||
if __name__ == "__main__":
|
||||
main()
|
||||
Reference in New Issue
Block a user