{ "schema_version": 1, "name": "ru_recall_v1", "notes": [ "Held-out note-recall fixture. Each case is a fresh semantic store: insert every note, embed the query, take the top 3 — the same read path cmd/mavend/voice.go runs for IntentQuery.", "Queries paraphrase their note on purpose. A query that repeats the note's words measures string matching, not recall. TestFixtureIsParaphrased enforces a ceiling on word overlap.", "want:\"\" means the query must recall NOTHING. Those cases measure false recall — the direction the spec calls out (a confident wrong fact is worse than a known gap).", "The distractor tag marks cases where a second note is plausible and only one is right. The hard tag marks cases with little or no shared vocabulary.", "Content is written for this operator: his preferences, his homelab, things he said once and would expect Maven to remember weeks later." ], "filler": [ {"id": "f1", "text": "в субботу ходил в баню", "kind": "note"}, {"id": "f2", "text": "купил новые кроссовки сорок третьего размера", "kind": "note"}, {"id": "f3", "text": "сериал закончился на третьем сезоне", "kind": "note"}, {"id": "f4", "text": "сосед сверху делает ремонт", "kind": "note"}, {"id": "f5", "text": "билеты в театр брал заранее", "kind": "note"}, {"id": "f6", "text": "выучил пару аккордов на гитаре", "kind": "note"}, {"id": "f7", "text": "записался к стоматологу", "kind": "note"}, {"id": "f8", "text": "поменял лампочку в коридоре", "kind": "note"}, {"id": "f9", "text": "погулял вдоль реки", "kind": "note"}, {"id": "f10", "text": "the balcony door sticks in winter", "kind": "note"}, {"id": "f11", "text": "the neighbour's dog barks at cyclists", "kind": "note"}, {"id": "f12", "text": "i finished the book about volcanoes", "kind": "note"} ], "cases": [ { "id": "ru-pref-001", "lang": "ru", "tags": ["preference", "paraphrase"], "query": "какой кофе мне наливать", "want": "n1", "notes": [ {"id": "n1", "text": "я пью кофе без сахара", "kind": "note"}, {"id": "n2", "text": "по утрам бегаю в парке", "kind": "note"}, {"id": "n3", "text": "не люблю громкую музыку", "kind": "note"} ] }, { "id": "ru-pref-002", "lang": "ru", "tags": ["preference", "homelab", "paraphrase", "hard"], "query": "когда запускать резервное копирование", "want": "n1", "note": "The docs/design.md preference-seam example, phrased as the operator would ask it later.", "notes": [ {"id": "n1", "text": "бэкапы лучше делать ночью в три часа", "kind": "note"}, {"id": "n2", "text": "обновления ставлю по субботам", "kind": "note"}, {"id": "n3", "text": "логи храню месяц", "kind": "note"} ] }, { "id": "ru-home-003", "lang": "ru", "tags": ["homelab", "paraphrase"], "query": "что помогло от мерцания монитора", "want": "n1", "notes": [ {"id": "n1", "text": "мерцание экрана прошло после обновления драйвера amdgpu", "kind": "note"}, {"id": "n2", "text": "вентилятор шумит на полной нагрузке", "kind": "note"}, {"id": "n3", "text": "поставил новый ssd в ноутбук", "kind": "note"} ] }, { "id": "ru-home-004", "lang": "ru", "tags": ["homelab", "distractor", "hard"], "query": "адрес домашнего сервера", "want": "n2", "note": "Two notes carry an IP. Only one is the server.", "notes": [ {"id": "n1", "text": "роутер живёт на 192.168.1.1", "kind": "note"}, {"id": "n2", "text": "домашний сервер на 192.168.1.104", "kind": "note"}, {"id": "n3", "text": "принтер подключен по usb", "kind": "note"} ] }, { "id": "ru-home-005", "lang": "ru", "tags": ["homelab"], "query": "где искать настройки nginx", "want": "n1", "notes": [ {"id": "n1", "text": "конфиг nginx лежит в /etc/nginx/sites-enabled", "kind": "note"}, {"id": "n2", "text": "сертификаты обновляет certbot по расписанию", "kind": "note"}, {"id": "n3", "text": "порт 8080 занят вебкой", "kind": "note"} ] }, { "id": "ru-pref-006", "lang": "ru", "tags": ["preference", "distractor", "hard"], "query": "что мне нельзя есть", "want": "n1", "note": "The Friday-meat note is a plausible second answer but it is a habit, not a restriction.", "notes": [ {"id": "n1", "text": "у меня аллергия на орехи", "kind": "note"}, {"id": "n2", "text": "не ем мясо по пятницам", "kind": "note"}, {"id": "n3", "text": "люблю острую еду", "kind": "note"} ] }, { "id": "ru-pers-007", "lang": "ru", "tags": ["distractor", "paraphrase"], "query": "когда мамин праздник", "want": "n1", "notes": [ {"id": "n1", "text": "день рождения мамы четырнадцатого марта", "kind": "note"}, {"id": "n2", "text": "у брата день рождения в июле", "kind": "note"}, {"id": "n3", "text": "годовщина в сентябре", "kind": "note"} ] }, { "id": "ru-home-008", "lang": "ru", "tags": ["homelab", "hard", "paraphrase"], "query": "чем ускоряется языковая модель", "want": "n1", "notes": [ {"id": "n1", "text": "модель крутится на встройке через vulkan", "kind": "note"}, {"id": "n2", "text": "whisper работает на процессоре", "kind": "note"}, {"id": "n3", "text": "голос у piper русский", "kind": "note"} ] }, { "id": "ru-pref-009", "lang": "ru", "tags": ["preference", "distractor"], "query": "во сколько я обычно засыпаю", "want": "n1", "notes": [ {"id": "n1", "text": "ложусь спать около часа ночи", "kind": "note"}, {"id": "n2", "text": "встаю в семь утра", "kind": "note"}, {"id": "n3", "text": "днём не сплю", "kind": "note"} ] }, { "id": "ru-home-010", "lang": "ru", "tags": ["homelab", "paraphrase"], "query": "где у меня хранятся пароли", "want": "n1", "notes": [ {"id": "n1", "text": "пароли держу в keepassxc", "kind": "note"}, {"id": "n2", "text": "двухфакторку сделал через totp", "kind": "note"}, {"id": "n3", "text": "ssh ключи лежат на юбикее", "kind": "note"} ] }, { "id": "ru-home-011", "lang": "ru", "tags": ["homelab", "hard", "paraphrase"], "query": "из-за чего кончилось место", "want": "n1", "notes": [ {"id": "n1", "text": "диск забился логами докера в июне", "kind": "note"}, {"id": "n2", "text": "рейд собрал из двух дисков", "kind": "note"}, {"id": "n3", "text": "бэкап на внешний диск раз в неделю", "kind": "note"} ] }, { "id": "ru-pref-012", "lang": "ru", "tags": ["preference", "distractor"], "query": "какой чай мне нравится", "want": "n1", "notes": [ {"id": "n1", "text": "чай пью только зелёный", "kind": "note"}, {"id": "n2", "text": "кофе пью без сахара", "kind": "note"}, {"id": "n3", "text": "воду пью из фильтра", "kind": "note"} ] }, { "id": "ru-silent-013", "lang": "ru", "tags": ["silent"], "query": "какая погода будет в пятницу", "want": "", "notes": [ {"id": "n1", "text": "роутер живёт на 192.168.1.1", "kind": "note"}, {"id": "n2", "text": "бэкапы лучше делать ночью", "kind": "note"}, {"id": "n3", "text": "у меня аллергия на орехи", "kind": "note"} ] }, { "id": "ru-silent-014", "lang": "ru", "tags": ["silent"], "query": "как зовут сестру моего коллеги", "want": "", "notes": [ {"id": "n1", "text": "конфиг nginx лежит в /etc/nginx/sites-enabled", "kind": "note"}, {"id": "n2", "text": "порт 8080 занят вебкой", "kind": "note"}, {"id": "n3", "text": "сертификаты обновляет certbot", "kind": "note"} ] }, { "id": "ru-silent-015", "lang": "ru", "tags": ["silent"], "query": "сколько я заплатил за машину", "want": "", "notes": [ {"id": "n1", "text": "чай пью только зелёный", "kind": "note"}, {"id": "n2", "text": "ложусь спать около часа ночи", "kind": "note"}, {"id": "n3", "text": "не люблю громкую музыку", "kind": "note"} ] }, { "id": "ru-home-016", "lang": "ru", "tags": ["homelab", "paraphrase"], "query": "откуда берётся токен бота", "want": "n1", "notes": [ {"id": "n1", "text": "токен телеграма лежит в deploy/telegram.env", "kind": "note"}, {"id": "n2", "text": "вебхуки не использую, только long-poll", "kind": "note"}, {"id": "n3", "text": "уведомления приходят в личку", "kind": "note"} ] }, { "id": "ru-hard-017", "lang": "ru", "tags": ["hard", "paraphrase", "homelab"], "query": "как я восстановил конфиги", "want": "n1", "note": "No shared word between query and note beyond none at all. This is the case a lexical embedder cannot win.", "notes": [ {"id": "n1", "text": "после переустановки системы вернул все настройки из git", "kind": "note"}, {"id": "n2", "text": "разделы на диске резал вручную", "kind": "note"}, {"id": "n3", "text": "загрузчик поставил заново", "kind": "note"} ] }, { "id": "ru-dist-018", "lang": "ru", "tags": ["distractor"], "query": "чем кормить кота", "want": "n1", "notes": [ {"id": "n1", "text": "кот ест только сухой корм", "kind": "note"}, {"id": "n2", "text": "собаке даю мясо", "kind": "note"}, {"id": "n3", "text": "рыбок кормлю раз в день", "kind": "note"} ] }, { "id": "ru-home-019", "lang": "ru", "tags": ["homelab", "hard", "paraphrase"], "query": "как контейнер получает доступ к видеокарте", "want": "n1", "notes": [ {"id": "n1", "text": "docker compose пробрасывает /dev/dri внутрь", "kind": "note"}, {"id": "n2", "text": "контейнеры рестартуют сами", "kind": "note"}, {"id": "n3", "text": "образы чищу вручную", "kind": "note"} ] }, { "id": "ru-pref-020", "lang": "ru", "tags": ["preference", "distractor"], "query": "когда мне нельзя звонить", "want": "n1", "notes": [ {"id": "n1", "text": "не звони мне после десяти вечера", "kind": "note"}, {"id": "n2", "text": "утром не трогай меня до кофе", "kind": "note"}, {"id": "n3", "text": "по выходным не работаю", "kind": "note"} ] }, { "id": "en-pref-021", "lang": "en", "tags": ["preference", "paraphrase"], "query": "which colour scheme do i like", "want": "n1", "notes": [ {"id": "n1", "text": "i prefer dark theme everywhere", "kind": "note"}, {"id": "n2", "text": "font size 14 is fine", "kind": "note"}, {"id": "n3", "text": "i use vim keybindings", "kind": "note"} ] }, { "id": "en-home-022", "lang": "en", "tags": ["homelab", "distractor"], "query": "where is the big disk mounted", "want": "n1", "notes": [ {"id": "n1", "text": "the nas drive is mounted at /mnt/hdd1", "kind": "note"}, {"id": "n2", "text": "models live on the ssd", "kind": "note"}, {"id": "n3", "text": "backups go to the nas nightly", "kind": "note"} ] }, { "id": "en-silent-023", "lang": "en", "tags": ["silent"], "query": "what is my bank account number", "want": "", "notes": [ {"id": "n1", "text": "the nas drive is mounted at /mnt/hdd1", "kind": "note"}, {"id": "n2", "text": "i prefer dark theme everywhere", "kind": "note"}, {"id": "n3", "text": "the router runs openwrt", "kind": "note"} ] }, { "id": "en-hard-024", "lang": "en", "tags": ["hard", "paraphrase"], "query": "what fixed the screen problem", "want": "n1", "notes": [ {"id": "n1", "text": "the flicker went away once i swapped the display cable", "kind": "note"}, {"id": "n2", "text": "the laptop fan is loud", "kind": "note"}, {"id": "n3", "text": "the second monitor is 1440p", "kind": "note"} ] }, { "id": "en-pref-025", "lang": "en", "tags": ["preference", "hard"], "query": "should i be offered wine", "want": "n1", "notes": [ {"id": "n1", "text": "i do not drink alcohol", "kind": "note"}, {"id": "n2", "text": "i skip breakfast", "kind": "note"}, {"id": "n3", "text": "i like spicy food", "kind": "note"} ] }, { "id": "ru-home-026", "lang": "ru", "tags": ["homelab", "paraphrase"], "query": "какая модель распознавания речи мне подходит", "want": "n1", "notes": [ {"id": "n1", "text": "whisper модель small хватает для русского", "kind": "note"}, {"id": "n2", "text": "голос ирина звучит лучше остальных", "kind": "note"}, {"id": "n3", "text": "слово активации маven", "kind": "note"} ] }, { "id": "ru-fact-027", "lang": "ru", "tags": ["distractor", "hard", "paraphrase"], "query": "когда я последний раз обслуживал машину", "want": "n1", "note": "A fact, not a note — both share the vector index, so a fact can win a recall.", "notes": [ {"id": "n1", "text": "последний раз менял масло в мае", "kind": "fact"}, {"id": "n2", "text": "шины поменял осенью", "kind": "fact"}, {"id": "n3", "text": "страховка до декабря", "kind": "fact"} ] }, { "id": "ru-pref-028", "lang": "ru", "tags": ["preference", "hard", "paraphrase"], "query": "как мне присылать оповещения", "want": "n1", "notes": [ {"id": "n1", "text": "терпеть не могу уведомления со звуком", "kind": "note"}, {"id": "n2", "text": "вибрацию оставь включённой", "kind": "note"}, {"id": "n3", "text": "письма читаю вечером", "kind": "note"} ] }, { "id": "ru-silent-029", "lang": "ru", "tags": ["silent"], "query": "во сколько отходит поезд", "want": "", "notes": [ {"id": "n1", "text": "кот ест только сухой корм", "kind": "note"}, {"id": "n2", "text": "люблю острую еду", "kind": "note"}, {"id": "n3", "text": "пароли держу в keepassxc", "kind": "note"} ] }, { "id": "en-home-030", "lang": "en", "tags": ["homelab", "paraphrase"], "query": "what firmware is on the router", "want": "n1", "notes": [ {"id": "n1", "text": "the router runs openwrt", "kind": "note"}, {"id": "n2", "text": "wifi channel is 6", "kind": "note"}, {"id": "n3", "text": "the guest network is off", "kind": "note"} ] }, { "id": "ru-mixed-031", "lang": "ru", "tags": ["mixed", "paraphrase", "hard"], "note": "notes and facts in one store and the note is the answer — the daemon indexes both (Vikunja #373)", "query": "куда я спрятал второй ключ от квартиры", "want": "n1", "notes": [ {"id": "n1", "text": "запасной ключ от квартиры лежит в синей коробке на полке", "kind": "note"}, {"id": "x1", "text": "поменял замок в двери двадцатого июня", "kind": "fact"}, {"id": "x2", "text": "отдал ключ соседке в мае", "kind": "fact"} ] }, { "id": "ru-mixed-032", "lang": "ru", "tags": ["mixed", "distractor"], "note": "the mirror of ru-mixed-031: the fact answers and the notes are the distractors", "query": "когда я в последний раз заливал бензин", "want": "x1", "notes": [ {"id": "x1", "text": "залил полный бак в четверг вечером", "kind": "fact"}, {"id": "n1", "text": "на заправке у моста дешевле бензин", "kind": "note"}, {"id": "n2", "text": "надо поменять зимние шины", "kind": "note"} ] } ] }