memory: canonicalise habit keys, take the median on a clock, name the period
Three defects in how the counted profile is read back. The counting unit was the key the LLM invented. There is no allowlist and no normalization behind it, so "я выпил воду" and "попил воды" landed as different keys, split one habit into two, and dropped both below the two-day threshold. Keys now go through an alias table in behavior_ru.json before they are counted. An unglossed key is quoted rather than recited as a verb, because "обычно ты выпил_воды около 09:00" is not a sentence. The typical time was a median of minutes since midnight, which is wrong for anything that straddles midnight. Bedtimes of 23:40, 23:50, 00:10 and 00:20 gave 12:00, on the one activity most likely to cross the boundary. It is now a circular median, and when the observations span more than half the clock she names the habit without a time instead of inventing one. The rest is wording. Profile.Since was computed and never spoken, so "обычно" was an unfalsifiable claim; the overall read-back now says over how many days of records it holds. The no-data weekday answer said "у меня пока нет ничего постоянного" about a question concerning him. And "quiet" was a bare prefix in the non-behavioural list, so any future self-fact key starting with those five letters would have been dropped. Found in review of #59.
This commit is contained in:
@@ -9,8 +9,15 @@
|
||||
"plural, because both 'по вторникам' and 'по средам' need that form.",
|
||||
"",
|
||||
"activities glosses a fact key as a second-person-singular verb phrase. An",
|
||||
"unknown key is read back verbatim rather than guessed at: inventing a",
|
||||
"Russian phrase for a key maven does not recognise puts words in his mouth."
|
||||
"unknown key is not glossed and is quoted rather than guessed at: inventing",
|
||||
"a Russian phrase for a key maven does not recognise puts words in his",
|
||||
"mouth, and reading the raw key inline produces 'обычно ты выпил_воды'.",
|
||||
"",
|
||||
"key_aliases maps the fact keys the router actually emits onto the canonical",
|
||||
"key the profile counts. The key of a self fact comes straight out of the",
|
||||
"LLM with no allowlist behind it, so 'я выпил воду' and 'попил воды' arrive",
|
||||
"as different keys, split one habit into two, and drop both below the",
|
||||
"day threshold. Additive and lowercase; an unlisted key counts as itself."
|
||||
],
|
||||
"weekdays": [
|
||||
"воскресеньям",
|
||||
@@ -30,5 +37,15 @@
|
||||
"walk": "гуляешь",
|
||||
"pills": "пьёшь витамины",
|
||||
"workout": "тренируешься"
|
||||
},
|
||||
"key_aliases": {
|
||||
"water": ["вода", "воду", "воды", "водичка", "попил", "попил_воды", "выпил_воды", "выпил_воду", "drink_water", "drank_water"],
|
||||
"meal": ["еда", "еду", "поел", "поесть", "завтрак", "обед", "ужин", "food", "ate", "breakfast", "lunch", "dinner"],
|
||||
"sleep": ["сон", "спать", "лег", "лёг", "уснул", "заснул", "bedtime", "slept"],
|
||||
"break": ["перерыв", "отдых", "пауза", "rest", "pause"],
|
||||
"shower": ["душ", "принял_душ", "помылся", "мытьё", "мылся"],
|
||||
"walk": ["прогулка", "гулял", "погулял", "выгулял", "walked", "walking"],
|
||||
"pills": ["витамины", "таблетки", "таблетка", "лекарство", "vitamins", "meds", "medicine"],
|
||||
"workout": ["тренировка", "тренировался", "потренировался", "зал", "спорт", "exercise", "gym", "training"]
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user