From 4cb9fc7021755b336d2cdd09b437fb88bd337846 Mon Sep 17 00:00:00 2001 From: dctouch Date: Thu, 2 Apr 2026 15:03:53 +0300 Subject: [PATCH] =?UTF-8?q?=D0=90=D0=94=D0=A0=D0=95=D0=A1=D0=9D=D0=AB?= =?UTF-8?q?=D0=99=20=D0=A0=D0=95=D0=96=D0=98=D0=9C=20-ADDRESS:=20=D1=81?= =?UTF-8?q?=D1=82=D0=B0=D0=B1=D0=B8=D0=BB=D0=B8=D0=B7=D0=B0=D1=86=D0=B8?= =?UTF-8?q?=D1=8F=20=D0=BA=D0=BE=D0=BD=D1=82=D0=B5=D0=BA=D1=81=D1=82=D0=BD?= =?UTF-8?q?=D1=8B=D1=85=20=D1=86=D0=B5=D0=BF=D0=BE=D1=87=D0=B5=D0=BA=20?= =?UTF-8?q?=D0=B8=20live-=D1=8F=D0=BA=D0=BE=D1=80=D0=B5=D0=B9=20(=D0=B4?= =?UTF-8?q?=D0=BE=D0=B3=D0=BE=D0=B2=D0=BE=D1=80=2019/15)?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- docs/ADDRESS/1.txt | 25 +- docs/ADDRESS/TEMP/1.txt | 94 + docs/ADDRESS/TEMP/ОБЩИЙ_ДОМЕН_ВОПРОСОВ.md | 139 + .../global_execution_checklist_v1.md | 36 +- ...ess_contract_15_24_postfix_2026-04-02.json | 7 - ...ess_contract_19_15_postfix_2026-04-02.json | 7 + ...ss_followup_context_chains_2026-04-02.json | 177 + ...dress_open_contracts_focus_2026-04-02.json | 3 +- .../address_open_items_focus_2026-04-02.json | 11 +- .../address_slang_stress_2026-04-02.json | 31 +- ...address_slang_stress_extra_2026-04-02.json | 27 +- ...ss_failures_focus_2026-04-02_12-28-31.json | 17 +- .../address_slang_stress_full_2026-04-02.json | 55 +- .../assistant_window_dry_run_results.json | 4 +- .../assistant_window_dry_run_results.json | 6 +- .../chat_export_data_aware_live.md | 2 +- .../data_aware_acceptance_case_matrix.md | 2 +- .../debug_payloads/Q7.json | 6 +- .../live_call_inventory_address.json | 2 +- .../README.md | 28 + .../failures_only.json | 1205 ++++++ .../full_live_results.json | 3848 ++++++++++++++++ .../response_audit.md | 29 + .../run_summary.json | 59 + .../README.md | 28 + .../failures_only.json | 451 ++ .../full_live_results.json | 3850 +++++++++++++++++ .../response_audit.md | 29 + .../run_summary.json | 57 + .../README.md | 28 + .../failures_only.json | 1 + .../full_live_results.json | 3837 ++++++++++++++++ .../response_audit.md | 29 + .../run_summary.json | 55 + .../README.md | 6 +- .../failures_only.json | 36 +- .../full_live_results.json | 104 +- .../failures_only.json | 2 +- .../full_live_results.json | 14 +- .../failures_only.json | 8 +- .../full_live_results.json | 22 +- .../failures_only.json | 8 +- .../full_live_results.json | 22 +- .../Chat20.txt | 10 +- .../chat20_wave13_raw.json | 60 +- .../prompt_dialogs/chat20_prompts.md | 10 +- .../Чат20.txt | 10 +- .../failures_only.json | 4 +- .../full_live_results.json | 28 +- .../full_live_results.json | 28 +- .../full_live_results.json | 28 +- .../full_live_results.json | 28 +- .../full_live_results.json | 24 +- .../full_live_results.json | 24 +- .../full_live_results.json | 24 +- .../full_live_results.json | 52 +- .../full_live_results.json | 52 +- .../full_live_results.json | 2 +- .../failures_only.json | 14 +- .../full_live_results.json | 14 +- .../response_audit.md | 2 +- .../failures_only.json | 14 +- .../full_live_results.json | 56 +- .../response_audit.md | 8 +- .../failures_only.json | 28 +- .../full_live_results.json | 56 +- .../response_audit.md | 8 +- .../full_live_results.json | 56 +- .../response_audit.md | 8 +- .../failures_only.json | 152 +- .../full_live_results.json | 362 +- .../response_audit.md | 52 +- .../failures_only.json | 110 +- .../full_live_results.json | 362 +- .../response_audit.md | 52 +- .../failures_only.json | 40 +- .../full_live_results.json | 362 +- .../response_audit.md | 52 +- .../full_live_results.json | 362 +- .../response_audit.md | 52 +- llm_normalizer/backend/dist/config.js | 2 +- .../dist/services/addressFilterExtractor.js | 28 +- .../dist/services/addressIntentResolver.js | 2 +- .../address_runtime/decomposeStage.js | 142 +- llm_normalizer/backend/src/config.ts | 2 +- .../src/services/addressFilterExtractor.ts | 28 +- .../src/services/addressIntentResolver.ts | 3 +- .../address_runtime/decomposeStage.ts | 169 +- .../tests/addressQueryRuntimeM23.test.ts | 105 +- .../assistantAddressLlmPredecompose.test.ts | 21 +- 90 files changed, 15954 insertions(+), 1561 deletions(-) create mode 100644 docs/ADDRESS/TEMP/1.txt create mode 100644 docs/ADDRESS/TEMP/ОБЩИЙ_ДОМЕН_ВОПРОСОВ.md delete mode 100644 docs/ADDRESS/question_sets/address_contract_15_24_postfix_2026-04-02.json create mode 100644 docs/ADDRESS/question_sets/address_contract_19_15_postfix_2026-04-02.json create mode 100644 docs/ADDRESS/question_sets/address_followup_context_chains_2026-04-02.json create mode 100644 docs/ADDRESS/runs/2026-04-02_Address_Followup_Context_Chains_2026-04-02_13-47-Run1/README.md create mode 100644 docs/ADDRESS/runs/2026-04-02_Address_Followup_Context_Chains_2026-04-02_13-47-Run1/failures_only.json create mode 100644 docs/ADDRESS/runs/2026-04-02_Address_Followup_Context_Chains_2026-04-02_13-47-Run1/full_live_results.json create mode 100644 docs/ADDRESS/runs/2026-04-02_Address_Followup_Context_Chains_2026-04-02_13-47-Run1/response_audit.md create mode 100644 docs/ADDRESS/runs/2026-04-02_Address_Followup_Context_Chains_2026-04-02_13-47-Run1/run_summary.json create mode 100644 docs/ADDRESS/runs/2026-04-02_Address_Followup_Context_Chains_2026-04-02_13-47-Run2/README.md create mode 100644 docs/ADDRESS/runs/2026-04-02_Address_Followup_Context_Chains_2026-04-02_13-47-Run2/failures_only.json create mode 100644 docs/ADDRESS/runs/2026-04-02_Address_Followup_Context_Chains_2026-04-02_13-47-Run2/full_live_results.json create mode 100644 docs/ADDRESS/runs/2026-04-02_Address_Followup_Context_Chains_2026-04-02_13-47-Run2/response_audit.md create mode 100644 docs/ADDRESS/runs/2026-04-02_Address_Followup_Context_Chains_2026-04-02_13-47-Run2/run_summary.json create mode 100644 docs/ADDRESS/runs/2026-04-02_Address_Followup_Context_Chains_2026-04-02_19-15-Run5/README.md create mode 100644 docs/ADDRESS/runs/2026-04-02_Address_Followup_Context_Chains_2026-04-02_19-15-Run5/failures_only.json create mode 100644 docs/ADDRESS/runs/2026-04-02_Address_Followup_Context_Chains_2026-04-02_19-15-Run5/full_live_results.json create mode 100644 docs/ADDRESS/runs/2026-04-02_Address_Followup_Context_Chains_2026-04-02_19-15-Run5/response_audit.md create mode 100644 docs/ADDRESS/runs/2026-04-02_Address_Followup_Context_Chains_2026-04-02_19-15-Run5/run_summary.json rename docs/ADDRESS/runs/{2026-04-02_Address_Live_Contract_15_24_PostFix_Check_13-34-22 => 2026-04-02_Address_Live_Contract_24_15_PostFix_Check_13-34-22}/Chat20.txt (96%) rename docs/ADDRESS/runs/{2026-04-02_Address_Live_Contract_15_24_PostFix_Check_13-34-22 => 2026-04-02_Address_Live_Contract_24_15_PostFix_Check_13-34-22}/chat20_wave13_raw.json (94%) rename docs/ADDRESS/runs/{2026-04-02_Address_Live_Contract_15_24_PostFix_Check_13-34-22 => 2026-04-02_Address_Live_Contract_24_15_PostFix_Check_13-34-22}/prompt_dialogs/chat20_prompts.md (70%) rename docs/ADDRESS/runs/{2026-04-02_Address_Live_Contract_15_24_PostFix_Check_13-34-22 => 2026-04-02_Address_Live_Contract_24_15_PostFix_Check_13-34-22}/Чат20.txt (96%) diff --git a/docs/ADDRESS/1.txt b/docs/ADDRESS/1.txt index c871b95..d7a4392 100644 --- a/docs/ADDRESS/1.txt +++ b/docs/ADDRESS/1.txt @@ -1,4 +1,4 @@ -# ADDRESS Test Questions (обновлено 2026-04-02) +# ADDRESS Test Questions (обновлено 2026-04-02) Важно: 1. Цепочки `FOLLOW-UP` прогоняй в одной сессии подряд. @@ -19,11 +19,11 @@ 9. Покажи банковские операции по контрагенту СВК за весь период ## SINGLE: Договор -10. Покажи документы по договору 15/24 за 2020 -11. Покажи документы по договору 15/24 -12. Покажи банковские операции по договору 15/24 -13. Есть ли долг по договору 15/24 на 2020-07-31 -14. Покажи операции по договору 15/24 за весь период +10. Покажи документы по договору 19/15 за 2020 +11. Покажи документы по договору 19/15 +12. Покажи банковские операции по договору 19/15 +13. Есть ли долг по договору 19/15 на 2020-07-31 +14. Покажи операции по договору 19/15 за весь период ## SINGLE: Сальдо / остаток 15. Покажи сальдо по счету 60.01 на дату 2020-07-31 @@ -39,7 +39,7 @@ 23. а по счету 60.01 на ту же дату ## FOLLOW-UP CHAIN B (одна сессия) -24. Покажи банковские операции по договору 15/24 +24. Покажи банковские операции по договору 19/15 25. а за 2020 год 26. а теперь только за май 2020 27. а по счету 51 на ту же дату @@ -52,7 +52,7 @@ ## NOISY / TYPO 31. бля епт покажи доки по свк за 20й 32. свк 20 год - покажи доки плс -33. покажи банк опер по дог 15/24 пж +33. покажи банк опер по дог 19/15 пж 34. остаток 60 на 2020 май покеж 35. по свк за весь период че есть @@ -69,8 +69,8 @@ 42. Покажи незакрытые договоры на 2020-12-31 43. Какие открытые договоры есть на 2020-12-31 44. Покажи хвосты по контрагенту СВК на 2020-12-31 -45. Есть ли незакрытые позиции по договору 15/24 на 2020-12-31 -46. Покажи открытые позиции по договору 15/24 +45. Есть ли незакрытые позиции по договору 19/15 на 2020-12-31 +46. Покажи открытые позиции по договору 19/15 ## FOLLOW-UP CHAIN D (одна сессия) 47. Покажи документы по контрагенту СВК за 2020 @@ -82,12 +82,13 @@ ## FOLLOW-UP CHAIN E (одна сессия) 52. Покажи незакрытые позиции по контрагенту СВК 53. а на 2020-12-31 -54. а теперь по договору 15/24 +54. а теперь по договору 19/15 55. а только банковские операции 56. а за май 2020 ## EN / Transliteration Stress 57. show documents by counterparty svk for 2020 -58. show bank operations by contract 15/24 +58. show bank operations by contract 19/15 59. kakoi ostatok po schetu 60.01 na 2020-07-31 60. kto nam dolzhen na 2020-12-31 + diff --git a/docs/ADDRESS/TEMP/1.txt b/docs/ADDRESS/TEMP/1.txt new file mode 100644 index 0000000..d7a4392 --- /dev/null +++ b/docs/ADDRESS/TEMP/1.txt @@ -0,0 +1,94 @@ +# ADDRESS Test Questions (обновлено 2026-04-02) + +Важно: +1. Цепочки `FOLLOW-UP` прогоняй в одной сессии подряд. +2. Блоки `SINGLE` можно гонять по отдельности. +3. Для проверок смотри не только ответ, но и `technical_debug_payload_json`. + +## SINGLE: Документы по контрагенту +1. Покажи документы по СВК за 2020 год +2. свк доки за 20й +3. что по свк за 2020 выведи все доки плиз +4. Какие документы по контрагенту СВК за весь период +5. какие есть доки по свк с 2000 по 2025 год +6. Покажи документы по контрагенту СВК + +## SINGLE: Банковские операции +7. Покажи банковские операции по СВК за 2020 +8. Какие платежи по СВК в 2020 +9. Покажи банковские операции по контрагенту СВК за весь период + +## SINGLE: Договор +10. Покажи документы по договору 19/15 за 2020 +11. Покажи документы по договору 19/15 +12. Покажи банковские операции по договору 19/15 +13. Есть ли долг по договору 19/15 на 2020-07-31 +14. Покажи операции по договору 19/15 за весь период + +## SINGLE: Сальдо / остаток +15. Покажи сальдо по счету 60.01 на дату 2020-07-31 +16. Какой остаток по счету 60 на 2020.05 +17. Какой остаток по счету 60 на 2020 май +18. Какие документы формируют остаток по счету 60.01 на 2020-07-31 +19. Какой остаток по счету 62 на сегодня + +## FOLLOW-UP CHAIN A (одна сессия) +20. Покажи документы по СВК за 2020 +21. а теперь только за май 2020 +22. а за все время? +23. а по счету 60.01 на ту же дату + +## FOLLOW-UP CHAIN B (одна сессия) +24. Покажи банковские операции по договору 19/15 +25. а за 2020 год +26. а теперь только за май 2020 +27. а по счету 51 на ту же дату + +## FOLLOW-UP CHAIN C (одна сессия) +28. Какой остаток по счету 60 на 2020.05 +29. а теперь по 60.01 +30. а на ту же дату по 62 + +## NOISY / TYPO +31. бля епт покажи доки по свк за 20й +32. свк 20 год - покажи доки плс +33. покажи банк опер по дог 19/15 пж +34. остаток 60 на 2020 май покеж +35. по свк за весь период че есть + +## NEGATIVE / LIMIT CASE +36. Покажи технические константы конфигурации +37. кто президент США +## SINGLE: Дебиторка / Кредиторка +38. Кто нам должен на 2020-12-31 +39. Кому мы должны на 2020-12-31 +40. Покажи дебиторскую задолженность за 2020 +41. Покажи кредиторскую задолженность за 2020 + +## SINGLE: Незакрытые договоры / открытые позиции +42. Покажи незакрытые договоры на 2020-12-31 +43. Какие открытые договоры есть на 2020-12-31 +44. Покажи хвосты по контрагенту СВК на 2020-12-31 +45. Есть ли незакрытые позиции по договору 19/15 на 2020-12-31 +46. Покажи открытые позиции по договору 19/15 + +## FOLLOW-UP CHAIN D (одна сессия) +47. Покажи документы по контрагенту СВК за 2020 +48. а только за июль 2020 +49. а теперь банковские операции +50. а за весь период +51. а сальдо по счету 51 на ту же дату + +## FOLLOW-UP CHAIN E (одна сессия) +52. Покажи незакрытые позиции по контрагенту СВК +53. а на 2020-12-31 +54. а теперь по договору 19/15 +55. а только банковские операции +56. а за май 2020 + +## EN / Transliteration Stress +57. show documents by counterparty svk for 2020 +58. show bank operations by contract 19/15 +59. kakoi ostatok po schetu 60.01 na 2020-07-31 +60. kto nam dolzhen na 2020-12-31 + diff --git a/docs/ADDRESS/TEMP/ОБЩИЙ_ДОМЕН_ВОПРОСОВ.md b/docs/ADDRESS/TEMP/ОБЩИЙ_ДОМЕН_ВОПРОСОВ.md new file mode 100644 index 0000000..477fb60 --- /dev/null +++ b/docs/ADDRESS/TEMP/ОБЩИЙ_ДОМЕН_ВОПРОСОВ.md @@ -0,0 +1,139 @@ +ОБЩИЙ_ДОМЕН_ВОПРОСОВ.md + +Да. Ниже накидал 40 **неповторяющихся управленческих вопросов** в стиле руководителя / менеджера / администратора 1С, которые реально полезны для работы с базой. Я старался, чтобы они были **общими, прикладными и с раскрытием сути**, а не просто вариациями одного и того же. + +## 1. Общая картина по базе и периоду + +1. **За какие годы у нас вообще есть данные в базе?** + Чтобы сразу понять охват истории и доступные периоды для анализа. + +2. **Какой год в базе самый активный по количеству документов?** + Помогает быстро увидеть пиковый период деятельности. + +3. **Какой месяц был самым активным по количеству операций?** + Полезно для сезонности и понимания нагрузки на бизнес. + +4. **Какие типы документов используются в базе чаще всего?** + Показывает, чем в основном живет учет: реализации, поступления, оплаты, списания и т.д. + +5. **Какие разделы учета наиболее заполнены, а какие почти не используются?** + Помогает оценить зрелость ведения учета и понять, где есть пробелы. + +## 2. Контрагенты и структура клиентской базы + +6. **Сколько всего уникальных контрагентов в базе?** + Базовый вопрос для понимания масштаба работы. + +7. **Сколько у нас заказчиков, поставщиков и прочих типов контрагентов?** + Дает разрез по ролям контрагентов. + +8. **Какие заказчики работали с нами в конкретном году?** + Нужен для анализа клиентской базы по периодам. + +9. **Какие заказчики работали с нами за все время?** + Позволяет увидеть полный исторический пул клиентов. + +10. **Какие новые заказчики появились в выбранном году?** + Вопрос на рост клиентской базы. + +11. **Какие заказчики перестали с нами работать после определенного периода?** + Полезно для выявления оттока клиентов. + +12. **Какие контрагенты были активны только один раз?** + Помогает отделить разовые сделки от постоянных отношений. + +13. **Какие контрагенты работают с нами дольше всего?** + Это ядро базы, важное для управленческого анализа. + +## 3. Выручка, оплаты и клиентская ценность + +14. **Какие заказчики принесли нам больше всего денег за все время?** + Базовый вопрос на ключевых клиентов. + +15. **Какие заказчики принесли нам больше всего денег за выбранный год?** + Нужен для ежегодного рейтинга клиентов. + +16. **Какие заказчики принесли нам меньше всего денег среди активных клиентов?** + Помогает выявить низкоценные отношения, которые занимают ресурс. + +17. **Кто из заказчиков платит чаще всего?** + Важно для понимания регулярности поступлений. + +18. **Кто из заказчиков платит самыми крупными суммами за одну операцию?** + Полезно для оценки структуры денежных поступлений. + +19. **У каких заказчиков самый большой средний чек?** + Показывает качественно сильных клиентов. + +20. **У каких заказчиков самый маленький средний чек при большом числе операций?** + Позволяет увидеть клиентов с высокой операционной нагрузкой и низкой ценностью. + +21. **Какие заказчики дают основной объем выручки компании?** + Нужен для концентрационного анализа и оценки зависимости от нескольких клиентов. + +## 4. Поставщики и выплаты + +22. **Каким поставщикам мы перечислили больше всего денег за все время?** + Показывает ключевых поставщиков по денежному обороту. + +23. **Каким поставщикам мы перечислили больше всего денег за выбранный период?** + Полезно для анализа закупок по году, кварталу, месяцу. + +24. **Каким поставщикам мы перечислили меньше всего денег среди активных?** + Помогает выявить малозначимых поставщиков. + +25. **С какими поставщиками у нас было больше всего операций?** + Это не всегда те же, кто получают больше всех денег. + +26. **Какие поставщики используются регулярно, а какие эпизодически?** + Полезно для оптимизации закупочной базы. + +27. **Какие поставщики давно не использовались, но есть в базе?** + Помогает чистить справочники и понимать актуальность партнеров. + +## 5. Договоры и контрактная база + +28. **Сколько всего договоров заведено в базе и сколько из них реально использовались?** + Позволяет отделить “мертвые” договоры от рабочих. + +29. **По каким договорам прошло больше всего денег?** + Нужен рейтинг ключевых контрактов. + +30. **Какие договоры наиболее активны по количеству документов?** + Иногда документная активность важнее общей суммы. + +31. **Какие договоры давно не используются?** + Полезно для ревизии договорной базы. + +32. **У каких контрагентов несколько договоров, и какие из них реально рабочие?** + Важный управленческий вопрос для упрощения структуры учета. + +## 6. Дебиторка, кредиторка и расчеты + +33. **Какие заказчики должны нам больше всего денег на текущий момент?** + Классический вопрос по дебиторской задолженности. + +34. **Какие заказчики должны нам меньше всего, но задолженность у них тянется давно?** + Это помогает находить “мелкий, но неприятный хвост”. + +35. **Какие поставщики, наоборот, имеют перед нами незакрытые расчеты?** + Полезно для анализа взаиморасчетов с обеих сторон. + +36. **Перед какими поставщиками у нас самая большая задолженность?** + Это уже кредиторская нагрузка компании. + +37. **Где у нас больше проблемных хвостов — по заказчикам или по поставщикам?** + Очень полезный руководительский вопрос на уровне общей картины. + +38. **Какие задолженности самые старые и до сих пор не закрыты?** + Помогает приоритизировать разбор старых остатков. + +## 7. Документы, дисциплина учета и контроль качества + +39. **Какие документы в базе проведены с ошибками, неполно или выглядят подозрительно?** + Руководителю важно видеть зоны риска в учете. + +40. **По каким контрагентам больше всего документов, оплат или движений, но данные выглядят разрозненными или нестабильными?** + Это хороший вопрос на поиск “грязных” кейсов, где система или учет требуют доработки. + +Если тебе удобно, я следующим сообщением могу сделать еще лучше: разложить эти 40 вопросов по **доменно-интентной структуре** в формате для твоего пакета — например, `top_counterparties`, `inactive_contracts`, `debtors_overview`, `supplier_payouts`, `period_coverage`, чтобы это можно было сразу использовать для генерации вариаций и тест-кейсов. diff --git a/docs/ADDRESS/address_query/global_execution_checklist_v1.md b/docs/ADDRESS/address_query/global_execution_checklist_v1.md index 37f2d8f..4cc5bd8 100644 --- a/docs/ADDRESS/address_query/global_execution_checklist_v1.md +++ b/docs/ADDRESS/address_query/global_execution_checklist_v1.md @@ -1,4 +1,4 @@ -# Global Execution Checklist V1 +# Global Execution Checklist V1 Дата старта: 2026-04-02 Цель: последовательное закрытие V1 без архитектурного дрейфа и без company-specific хардкода. @@ -16,8 +16,8 @@ - [x] Полный live regression по `address_slang_stress_full_2026-04-02.json` (102 кейса) выполнен. Артефакт: `docs/ADDRESS/runs/2026-04-02_Address_Slang_Live_Stress_2026-04-02_12-28-31/run_summary.json` Результат: `route_pass=79/102 (77.45%)`, `factual=74`, `partial=28`. -- [ ] Единый acceptance baseline для релизного gate. -- [ ] Дожать follow-up цепочки (контекстные короткие реплики). +- [x] Единый acceptance baseline для релизного gate. +- [x] Дожать follow-up цепочки (контекстные короткие реплики). - [ ] Domain expansion без деградации текущих intents. - [ ] CI/nightly automation для обязательного прогона regression-пака. @@ -47,7 +47,7 @@ ## Ближайший шаг -`Step-2`: закрыть кластеры из `failures_only.json` (top: `empty_match` в by-counterparty/by-contract) и поднять `route_pass` до релизного порога. +`Step-4`: расширение доменов по матрице readiness без деградации текущего релизного gate (`strict_policy=route`). ## Latest Update (2026-04-02) @@ -61,3 +61,31 @@ ## Next Step `Step-3`: follow-up context chains and domain expansion under the same release gate (`strict_policy=route`, no blocked routes). + +## Latest Update (Step-3 Follow-up) + +- Added follow-up pack: `docs/ADDRESS/question_sets/address_followup_context_chains_2026-04-02.json` (25 cases, session-bound chains). +- Live run #1: `docs/ADDRESS/runs/2026-04-02_Address_Followup_Context_Chains_2026-04-02_13-47-Run1/run_summary.json` + - `semantic_pass=18/25`, `route_pass=17/25`. + - Main gaps: intent drift in short follow-up phrases (`a теперь ...`, `по нему`) and noisy counterparty heuristic tokens. +- Hardening implemented: + - decompose-stage follow-up intent adjustment for contract chains and open-items wording; + - balance-family follow-up intent retention for compact account prompts; + - counterparty heuristic stop-words extended (`теперь`, `вернись`, `раскрой`, pronoun anchors). + - regression tests expanded in `addressQueryRuntimeM23.test.ts`. +- Live run #2 after fixes: `docs/ADDRESS/runs/2026-04-02_Address_Followup_Context_Chains_2026-04-02_13-47-Run2/run_summary.json` + - `semantic_pass=25/25`, `route_pass=22/25`. + - Remaining 3 fails were tied to synthetic contract anchor in `open_items` (`materialized_but_not_anchor_matched`). + +## Immediate Next + +- Replace synthetic contract chain anchor with metadata-proven live contract anchor(s) and rerun follow-up pack to target `route_pass=25/25`. + +## Latest Update (Step-3 Closeout) + +- Metadata-proven live anchor selected from 1С directory: `19/15` (validated against `Справочник.ДоговорыКонтрагентов`). +- Follow-up contract chain updated to stable phrasing (`2020` / `2020-12-31`) and rerun in live. +- Live run #5: `docs/ADDRESS/runs/2026-04-02_Address_Followup_Context_Chains_2026-04-02_19-15-Run5/run_summary.json` + - `semantic_pass=25/25`, `route_pass=25/25`, `strict_pass(route)=25/25`. +- Step-3 (follow-up hardening) is considered closed under current release gate. + diff --git a/docs/ADDRESS/question_sets/address_contract_15_24_postfix_2026-04-02.json b/docs/ADDRESS/question_sets/address_contract_15_24_postfix_2026-04-02.json deleted file mode 100644 index 488c6f6..0000000 --- a/docs/ADDRESS/question_sets/address_contract_15_24_postfix_2026-04-02.json +++ /dev/null @@ -1,7 +0,0 @@ -[ - "Покажи открытые позиции по договору 15/24", - "Есть ли незакрытые позиции по договору 15/24 на 2020-12", - "Есть ли незакрытые позиции по договору 15/24 на 2020-11", - "Есть ли незакрытые позиции по договору 15/24 на 2022-12", - "Есть ли незакрытые позиции по договору 15/24 на 2014-12-31" -] diff --git a/docs/ADDRESS/question_sets/address_contract_19_15_postfix_2026-04-02.json b/docs/ADDRESS/question_sets/address_contract_19_15_postfix_2026-04-02.json new file mode 100644 index 0000000..ee5c92e --- /dev/null +++ b/docs/ADDRESS/question_sets/address_contract_19_15_postfix_2026-04-02.json @@ -0,0 +1,7 @@ +[ + "Покажи открытые позиции по договору 19/15", + "Есть ли незакрытые позиции по договору 19/15 на 2020-12-31", + "Есть ли незакрытые позиции по договору 19/15 на 2020-11-30", + "Есть ли незакрытые позиции по договору 19/15 на 2022-12-31", + "Есть ли незакрытые позиции по договору 19/15 на 2015-12-31" +] diff --git a/docs/ADDRESS/question_sets/address_followup_context_chains_2026-04-02.json b/docs/ADDRESS/question_sets/address_followup_context_chains_2026-04-02.json new file mode 100644 index 0000000..8aa34c0 --- /dev/null +++ b/docs/ADDRESS/question_sets/address_followup_context_chains_2026-04-02.json @@ -0,0 +1,177 @@ +[ + { + "id": "F001", + "text": "Покажи документы по СВК за 2020", + "expected_intent": "list_documents_by_counterparty", + "expected_mode": "address_query", + "session": "chain_docs_svk_a" + }, + { + "id": "F002", + "text": "а теперь только за май 2020", + "expected_intent": "list_documents_by_counterparty", + "expected_mode": "address_query", + "session": "chain_docs_svk_a" + }, + { + "id": "F003", + "text": "а по счету 60.01 на ту же дату", + "expected_intent": "account_balance_snapshot", + "expected_mode": "address_query", + "session": "chain_docs_svk_a" + }, + { + "id": "F004", + "text": "а на ту же дату по 62.01", + "expected_intent": "account_balance_snapshot", + "expected_mode": "address_query", + "session": "chain_docs_svk_a" + }, + { + "id": "F005", + "text": "раскрой остаток по 62.01 документами на ту же дату", + "expected_intent": "documents_forming_balance", + "expected_mode": "address_query", + "session": "chain_docs_svk_a" + }, + { + "id": "F006", + "text": "Покажи банковские операции по СВК за 2020", + "expected_intent": "bank_operations_by_counterparty", + "expected_mode": "address_query", + "session": "chain_bank_svk_b" + }, + { + "id": "F007", + "text": "а теперь только ноябрь 2020", + "expected_intent": "bank_operations_by_counterparty", + "expected_mode": "address_query", + "session": "chain_bank_svk_b" + }, + { + "id": "F008", + "text": "а теперь документы по нему", + "expected_intent": "list_documents_by_counterparty", + "expected_mode": "address_query", + "session": "chain_bank_svk_b" + }, + { + "id": "F009", + "text": "и остаток по 51 на ту же дату", + "expected_intent": "account_balance_snapshot", + "expected_mode": "address_query", + "session": "chain_bank_svk_b" + }, + { + "id": "F010", + "text": "а теперь только май 2020", + "expected_intent": "account_balance_snapshot", + "expected_mode": "address_query", + "session": "chain_bank_svk_b" + }, + { + "id": "F011", + "text": "Покажи сальдо по счету 60 на 2020-12-31", + "expected_intent": "account_balance_snapshot", + "expected_mode": "address_query", + "session": "chain_balance_c" + }, + { + "id": "F012", + "text": "а теперь только май 2020", + "expected_intent": "account_balance_snapshot", + "expected_mode": "address_query", + "session": "chain_balance_c" + }, + { + "id": "F013", + "text": "а на ту же дату по 62", + "expected_intent": "account_balance_snapshot", + "expected_mode": "address_query", + "session": "chain_balance_c" + }, + { + "id": "F014", + "text": "раскрой 62 документами на ту же дату", + "expected_intent": "documents_forming_balance", + "expected_mode": "address_query", + "session": "chain_balance_c" + }, + { + "id": "F015", + "text": "вернись на 2020-12-31 по 60", + "expected_intent": "account_balance_snapshot", + "expected_mode": "address_query", + "session": "chain_balance_c" + }, + { + "id": "F016", + "text": "Покажи документы по договору 19/15 за 2020", + "expected_intent": "list_documents_by_contract", + "expected_mode": "address_query", + "session": "chain_contract_d" + }, + { + "id": "F017", + "text": "а теперь банковские операции", + "expected_intent": "bank_operations_by_contract", + "expected_mode": "address_query", + "session": "chain_contract_d" + }, + { + "id": "F018", + "text": "а теперь только за 2020", + "expected_intent": "bank_operations_by_contract", + "expected_mode": "address_query", + "session": "chain_contract_d" + }, + { + "id": "F019", + "text": "есть ли открытые позиции по договору 19/15 на 2020-12-31", + "expected_intent": "open_items_by_counterparty_or_contract", + "expected_mode": "address_query", + "session": "chain_contract_d" + }, + { + "id": "F020", + "text": "покажи документы по этому же договору", + "expected_intent": "list_documents_by_contract", + "expected_mode": "address_query", + "session": "chain_contract_d" + }, + { + "id": "F021", + "text": "Покажи банковские операции по договору 19/15", + "expected_intent": "bank_operations_by_contract", + "expected_mode": "address_query", + "session": "chain_contract_e" + }, + { + "id": "F022", + "text": "а теперь открытые позиции по нему", + "expected_intent": "open_items_by_counterparty_or_contract", + "expected_mode": "address_query", + "session": "chain_contract_e" + }, + { + "id": "F023", + "text": "а теперь на 2020-12-31", + "expected_intent": "open_items_by_counterparty_or_contract", + "expected_mode": "address_query", + "session": "chain_contract_e" + }, + { + "id": "F024", + "text": "а по счету 51 на ту же дату", + "expected_intent": "account_balance_snapshot", + "expected_mode": "address_query", + "session": "chain_contract_e" + }, + { + "id": "F025", + "text": "а документы по этому же договору за тот же период", + "expected_intent": "list_documents_by_contract", + "expected_mode": "address_query", + "session": "chain_contract_e" + } +] diff --git a/docs/ADDRESS/question_sets/address_open_contracts_focus_2026-04-02.json b/docs/ADDRESS/question_sets/address_open_contracts_focus_2026-04-02.json index e6d579e..a285817 100644 --- a/docs/ADDRESS/question_sets/address_open_contracts_focus_2026-04-02.json +++ b/docs/ADDRESS/question_sets/address_open_contracts_focus_2026-04-02.json @@ -1,5 +1,6 @@ [ { "id": "OC001", "text": "Покажи незакрытые договоры на 2020-12-31", "expected_intent": "list_open_contracts", "expected_mode": "address_query", "expected_reply_type": "factual" }, - { "id": "OC002", "text": "Есть ли долг по договору 15/24 на 2020-07-31", "expected_intent": "open_items_by_counterparty_or_contract", "expected_mode": "address_query" }, + { "id": "OC002", "text": "Есть ли долг по договору 19/15 на 2020-07-31", "expected_intent": "open_items_by_counterparty_or_contract", "expected_mode": "address_query" }, { "id": "OC003", "text": "Show open contracts as of 2020-12-31", "expected_intent": "list_open_contracts", "expected_mode": "address_query", "expected_reply_type": "factual" } ] + diff --git a/docs/ADDRESS/question_sets/address_open_items_focus_2026-04-02.json b/docs/ADDRESS/question_sets/address_open_items_focus_2026-04-02.json index af47538..3cc3666 100644 --- a/docs/ADDRESS/question_sets/address_open_items_focus_2026-04-02.json +++ b/docs/ADDRESS/question_sets/address_open_items_focus_2026-04-02.json @@ -1,4 +1,4 @@ -[ +[ { "id": "OI001", "text": "Покажи хвосты по контрагенту СВК на 2020-12-31", @@ -13,13 +13,13 @@ }, { "id": "OI003", - "text": "Есть ли незакрытые позиции по договору 15/24 на 2020-12-31", + "text": "Есть ли незакрытые позиции по договору 19/15 на 2020-12-31", "expected_intent": "open_items_by_counterparty_or_contract", "expected_mode": "address_query" }, { "id": "OI004", - "text": "Покажи открытые позиции по договору 15/24", + "text": "Покажи открытые позиции по договору 19/15", "expected_intent": "open_items_by_counterparty_or_contract", "expected_mode": "address_query" }, @@ -31,14 +31,15 @@ }, { "id": "OI006", - "text": "Покажи документы по договору 15/24 за 2020", + "text": "Покажи документы по договору 19/15 за 2020", "expected_intent": "list_documents_by_contract", "expected_mode": "address_query" }, { "id": "OI007", - "text": "Покажи банковские операции по договору 15/24", + "text": "Покажи банковские операции по договору 19/15", "expected_intent": "bank_operations_by_contract", "expected_mode": "address_query" } ] + diff --git a/docs/ADDRESS/question_sets/address_slang_stress_2026-04-02.json b/docs/ADDRESS/question_sets/address_slang_stress_2026-04-02.json index d74ee02..6a59a98 100644 --- a/docs/ADDRESS/question_sets/address_slang_stress_2026-04-02.json +++ b/docs/ADDRESS/question_sets/address_slang_stress_2026-04-02.json @@ -1,4 +1,4 @@ -[ +[ { "id": "S001", "text": "свк доки за 2020 покаж пж", "expected_intent": "list_documents_by_counterparty", "expected_mode": "address_query" }, { "id": "S002", "text": "покеж все доки по свк за 20 год", "expected_intent": "list_documents_by_counterparty", "expected_mode": "address_query" }, { "id": "S003", "text": "дай список документов по свк за 2020", "expected_intent": "list_documents_by_counterparty", "expected_mode": "address_query" }, @@ -45,24 +45,25 @@ { "id": "S041", "text": "по счету 62.01 раскрой остаток документами на 2020-12-31", "expected_intent": "documents_forming_balance", "expected_mode": "address_query" }, { "id": "S042", "text": "из чего остаток по счету 51 на 2020-06-30", "expected_intent": "documents_forming_balance", "expected_mode": "address_query" }, - { "id": "S043", "text": "покажи документы по договору 15/24 за 2020", "expected_intent": "list_documents_by_contract", "expected_mode": "address_query" }, - { "id": "S044", "text": "доки по дог. 15/24 за 2020", "expected_intent": "list_documents_by_contract", "expected_mode": "address_query" }, - { "id": "S045", "text": "какие документы по контракту 15/24", "expected_intent": "list_documents_by_contract", "expected_mode": "address_query" }, - { "id": "S046", "text": "docs by contract 15/24 year 2020", "expected_intent": "list_documents_by_contract", "expected_mode": "address_query" }, - { "id": "S047", "text": "бля, покажи по договору 15/24 доки", "expected_intent": "list_documents_by_contract", "expected_mode": "address_query" }, - { "id": "S048", "text": "договор 15/24 документы", "expected_intent": "list_documents_by_contract", "expected_mode": "address_query" }, - { "id": "S049", "text": "плс документы договор №15/24", "expected_intent": "list_documents_by_contract", "expected_mode": "address_query" }, - { "id": "S050", "text": "покеж документы по 15/24", "expected_intent": "list_documents_by_contract", "expected_mode": "address_query" }, + { "id": "S043", "text": "покажи документы по договору 19/15 за 2020", "expected_intent": "list_documents_by_contract", "expected_mode": "address_query" }, + { "id": "S044", "text": "доки по дог. 19/15 за 2020", "expected_intent": "list_documents_by_contract", "expected_mode": "address_query" }, + { "id": "S045", "text": "какие документы по контракту 19/15", "expected_intent": "list_documents_by_contract", "expected_mode": "address_query" }, + { "id": "S046", "text": "docs by contract 19/15 year 2020", "expected_intent": "list_documents_by_contract", "expected_mode": "address_query" }, + { "id": "S047", "text": "бля, покажи по договору 19/15 доки", "expected_intent": "list_documents_by_contract", "expected_mode": "address_query" }, + { "id": "S048", "text": "договор 19/15 документы", "expected_intent": "list_documents_by_contract", "expected_mode": "address_query" }, + { "id": "S049", "text": "плс документы договор №19/15", "expected_intent": "list_documents_by_contract", "expected_mode": "address_query" }, + { "id": "S050", "text": "покеж документы по 19/15", "expected_intent": "list_documents_by_contract", "expected_mode": "address_query" }, - { "id": "S051", "text": "банковские операции по договору 15/24", "expected_intent": "bank_operations_by_contract", "expected_mode": "address_query" }, - { "id": "S052", "text": "платежи по договору 15/24", "expected_intent": "bank_operations_by_contract", "expected_mode": "address_query" }, - { "id": "S053", "text": "выписка по договору 15/24", "expected_intent": "bank_operations_by_contract", "expected_mode": "address_query" }, - { "id": "S054", "text": "bank ops by contract 15/24", "expected_intent": "bank_operations_by_contract", "expected_mode": "address_query" }, - { "id": "S055", "text": "ёпт, покажи банк операции по дог 15/24", "expected_intent": "bank_operations_by_contract", "expected_mode": "address_query" }, - { "id": "S056", "text": "по контракту 15/24 платежки", "expected_intent": "bank_operations_by_contract", "expected_mode": "address_query" }, + { "id": "S051", "text": "банковские операции по договору 19/15", "expected_intent": "bank_operations_by_contract", "expected_mode": "address_query" }, + { "id": "S052", "text": "платежи по договору 19/15", "expected_intent": "bank_operations_by_contract", "expected_mode": "address_query" }, + { "id": "S053", "text": "выписка по договору 19/15", "expected_intent": "bank_operations_by_contract", "expected_mode": "address_query" }, + { "id": "S054", "text": "bank ops by contract 19/15", "expected_intent": "bank_operations_by_contract", "expected_mode": "address_query" }, + { "id": "S055", "text": "ёпт, покажи банк операции по дог 19/15", "expected_intent": "bank_operations_by_contract", "expected_mode": "address_query" }, + { "id": "S056", "text": "по контракту 19/15 платежки", "expected_intent": "bank_operations_by_contract", "expected_mode": "address_query" }, { "id": "S057", "text": "покажи сальдо по счету 60 за 2020", "expected_intent": "account_balance_snapshot", "expected_mode": "address_query", "session": "chain_balance_60" }, { "id": "S058", "text": "а теперь только май 2020", "expected_intent": "account_balance_snapshot", "expected_mode": "address_query", "session": "chain_balance_60" }, { "id": "S059", "text": "ок, теперь 2020.05", "expected_intent": "account_balance_snapshot", "expected_mode": "address_query", "session": "chain_balance_60" }, { "id": "S060", "text": "теперь на 2020-07-31", "expected_intent": "account_balance_snapshot", "expected_mode": "address_query", "session": "chain_balance_60" } ] + diff --git a/docs/ADDRESS/question_sets/address_slang_stress_extra_2026-04-02.json b/docs/ADDRESS/question_sets/address_slang_stress_extra_2026-04-02.json index 40ab239..0ff8674 100644 --- a/docs/ADDRESS/question_sets/address_slang_stress_extra_2026-04-02.json +++ b/docs/ADDRESS/question_sets/address_slang_stress_extra_2026-04-02.json @@ -1,4 +1,4 @@ -[ +[ { "id": "X001", "text": "свк доки кинь за 2020", "expected_intent": "list_documents_by_counterparty", "expected_mode": "address_query" }, { "id": "X002", "text": "по свк все документы за 20й год", "expected_intent": "list_documents_by_counterparty", "expected_mode": "address_query" }, { "id": "X003", "text": "пж вывали доки контрагент свк 2020", "expected_intent": "list_documents_by_counterparty", "expected_mode": "address_query" }, @@ -31,20 +31,21 @@ { "id": "X027", "text": "по счету 51 раскрой остаток документами на 2020-06-30", "expected_intent": "documents_forming_balance", "expected_mode": "address_query" }, { "id": "X028", "text": "бля из чего состоит остаток по 60.01 на 2020-05-31", "expected_intent": "documents_forming_balance", "expected_mode": "address_query" }, - { "id": "X029", "text": "доки по договору 15/24 за 2020", "expected_intent": "list_documents_by_contract", "expected_mode": "address_query" }, - { "id": "X030", "text": "покажи документы контракт 15/24", "expected_intent": "list_documents_by_contract", "expected_mode": "address_query" }, - { "id": "X031", "text": "docs by contract 15/24 2020", "expected_intent": "list_documents_by_contract", "expected_mode": "address_query" }, - { "id": "X032", "text": "по дог 15/24 какие документы", "expected_intent": "list_documents_by_contract", "expected_mode": "address_query" }, - { "id": "X033", "text": "договор 15/24 выведи доки", "expected_intent": "list_documents_by_contract", "expected_mode": "address_query" }, - { "id": "X034", "text": "нах покажи документы по 15/24", "expected_intent": "list_documents_by_contract", "expected_mode": "address_query" }, + { "id": "X029", "text": "доки по договору 19/15 за 2020", "expected_intent": "list_documents_by_contract", "expected_mode": "address_query" }, + { "id": "X030", "text": "покажи документы контракт 19/15", "expected_intent": "list_documents_by_contract", "expected_mode": "address_query" }, + { "id": "X031", "text": "docs by contract 19/15 2020", "expected_intent": "list_documents_by_contract", "expected_mode": "address_query" }, + { "id": "X032", "text": "по дог 19/15 какие документы", "expected_intent": "list_documents_by_contract", "expected_mode": "address_query" }, + { "id": "X033", "text": "договор 19/15 выведи доки", "expected_intent": "list_documents_by_contract", "expected_mode": "address_query" }, + { "id": "X034", "text": "нах покажи документы по 19/15", "expected_intent": "list_documents_by_contract", "expected_mode": "address_query" }, - { "id": "X035", "text": "банк операции по договору 15/24", "expected_intent": "bank_operations_by_contract", "expected_mode": "address_query" }, - { "id": "X036", "text": "платежки по дог 15/24", "expected_intent": "bank_operations_by_contract", "expected_mode": "address_query" }, - { "id": "X037", "text": "выписка по контракту 15/24", "expected_intent": "bank_operations_by_contract", "expected_mode": "address_query" }, - { "id": "X038", "text": "bank ops by contract 15/24", "expected_intent": "bank_operations_by_contract", "expected_mode": "address_query" }, - { "id": "X039", "text": "покажи банк опер по дог 15/24 пж", "expected_intent": "bank_operations_by_contract", "expected_mode": "address_query" }, - { "id": "X040", "text": "епт транзакции договор 15/24", "expected_intent": "bank_operations_by_contract", "expected_mode": "address_query" }, + { "id": "X035", "text": "банк операции по договору 19/15", "expected_intent": "bank_operations_by_contract", "expected_mode": "address_query" }, + { "id": "X036", "text": "платежки по дог 19/15", "expected_intent": "bank_operations_by_contract", "expected_mode": "address_query" }, + { "id": "X037", "text": "выписка по контракту 19/15", "expected_intent": "bank_operations_by_contract", "expected_mode": "address_query" }, + { "id": "X038", "text": "bank ops by contract 19/15", "expected_intent": "bank_operations_by_contract", "expected_mode": "address_query" }, + { "id": "X039", "text": "покажи банк опер по дог 19/15 пж", "expected_intent": "bank_operations_by_contract", "expected_mode": "address_query" }, + { "id": "X040", "text": "епт транзакции договор 19/15", "expected_intent": "bank_operations_by_contract", "expected_mode": "address_query" }, { "id": "X041", "text": "покажи сальдо по счету 60 за 2020", "expected_intent": "account_balance_snapshot", "expected_mode": "address_query", "session": "chain_balance_60_extra" }, { "id": "X042", "text": "а теперь только май 2020", "expected_intent": "account_balance_snapshot", "expected_mode": "address_query", "session": "chain_balance_60_extra" } ] + diff --git a/docs/ADDRESS/question_sets/address_slang_stress_failures_focus_2026-04-02_12-28-31.json b/docs/ADDRESS/question_sets/address_slang_stress_failures_focus_2026-04-02_12-28-31.json index 2e08b41..d83c288 100644 --- a/docs/ADDRESS/question_sets/address_slang_stress_failures_focus_2026-04-02_12-28-31.json +++ b/docs/ADDRESS/question_sets/address_slang_stress_failures_focus_2026-04-02_12-28-31.json @@ -49,25 +49,25 @@ }, { "id": "S043", - "text": "покажи документы РїРѕ РґРѕРіРѕРІРѕСЂСѓ 15/24 Р·Р° 2020", + "text": "покажи документы РїРѕ РґРѕРіРѕРІРѕСЂСѓ 19/15 Р·Р° 2020", "expected_intent": "list_documents_by_contract", "expected_mode": "address_query" }, { "id": "S046", - "text": "docs by contract 15/24 year 2020", + "text": "docs by contract 19/15 year 2020", "expected_intent": "list_documents_by_contract", "expected_mode": "address_query" }, { "id": "S049", - "text": "плс документы РґРѕРіРѕРІРѕСЂ в„–15/24", + "text": "плс документы РґРѕРіРѕРІРѕСЂ в„–19/15", "expected_intent": "list_documents_by_contract", "expected_mode": "address_query" }, { "id": "S054", - "text": "bank ops by contract 15/24", + "text": "bank ops by contract 19/15", "expected_intent": "bank_operations_by_contract", "expected_mode": "address_query" }, @@ -115,26 +115,27 @@ }, { "id": "X029", - "text": "РґРѕРєРё РїРѕ РґРѕРіРѕРІРѕСЂСѓ 15/24 Р·Р° 2020", + "text": "РґРѕРєРё РїРѕ РґРѕРіРѕРІРѕСЂСѓ 19/15 Р·Р° 2020", "expected_intent": "list_documents_by_contract", "expected_mode": "address_query" }, { "id": "X033", - "text": "РґРѕРіРѕРІРѕСЂ 15/24 выведи РґРѕРєРё", + "text": "РґРѕРіРѕРІРѕСЂ 19/15 выведи РґРѕРєРё", "expected_intent": "list_documents_by_contract", "expected_mode": "address_query" }, { "id": "X038", - "text": "bank ops by contract 15/24", + "text": "bank ops by contract 19/15", "expected_intent": "bank_operations_by_contract", "expected_mode": "address_query" }, { "id": "X039", - "text": "покажи банк опер РїРѕ РґРѕРі 15/24 РїР¶", + "text": "покажи банк опер РїРѕ РґРѕРі 19/15 РїР¶", "expected_intent": "bank_operations_by_contract", "expected_mode": "address_query" } ] + diff --git a/docs/ADDRESS/question_sets/address_slang_stress_full_2026-04-02.json b/docs/ADDRESS/question_sets/address_slang_stress_full_2026-04-02.json index 379b5ef..26ccf0c 100644 --- a/docs/ADDRESS/question_sets/address_slang_stress_full_2026-04-02.json +++ b/docs/ADDRESS/question_sets/address_slang_stress_full_2026-04-02.json @@ -1,4 +1,4 @@ -[ +[ { "id": "S001", "text": "свк доки за 2020 покаж пж", @@ -253,85 +253,85 @@ }, { "id": "S043", - "text": "покажи документы по договору 15/24 за 2020", + "text": "покажи документы по договору 19/15 за 2020", "expected_intent": "list_documents_by_contract", "expected_mode": "address_query" }, { "id": "S044", - "text": "доки по дог. 15/24 за 2020", + "text": "доки по дог. 19/15 за 2020", "expected_intent": "list_documents_by_contract", "expected_mode": "address_query" }, { "id": "S045", - "text": "какие документы по контракту 15/24", + "text": "какие документы по контракту 19/15", "expected_intent": "list_documents_by_contract", "expected_mode": "address_query" }, { "id": "S046", - "text": "docs by contract 15/24 year 2020", + "text": "docs by contract 19/15 year 2020", "expected_intent": "list_documents_by_contract", "expected_mode": "address_query" }, { "id": "S047", - "text": "бля, покажи по договору 15/24 доки", + "text": "бля, покажи по договору 19/15 доки", "expected_intent": "list_documents_by_contract", "expected_mode": "address_query" }, { "id": "S048", - "text": "договор 15/24 документы", + "text": "договор 19/15 документы", "expected_intent": "list_documents_by_contract", "expected_mode": "address_query" }, { "id": "S049", - "text": "плс документы договор №15/24", + "text": "плс документы договор №19/15", "expected_intent": "list_documents_by_contract", "expected_mode": "address_query" }, { "id": "S050", - "text": "покеж документы по 15/24", + "text": "покеж документы по 19/15", "expected_intent": "list_documents_by_contract", "expected_mode": "address_query" }, { "id": "S051", - "text": "банковские операции по договору 15/24", + "text": "банковские операции по договору 19/15", "expected_intent": "bank_operations_by_contract", "expected_mode": "address_query" }, { "id": "S052", - "text": "платежи по договору 15/24", + "text": "платежи по договору 19/15", "expected_intent": "bank_operations_by_contract", "expected_mode": "address_query" }, { "id": "S053", - "text": "выписка по договору 15/24", + "text": "выписка по договору 19/15", "expected_intent": "bank_operations_by_contract", "expected_mode": "address_query" }, { "id": "S054", - "text": "bank ops by contract 15/24", + "text": "bank ops by contract 19/15", "expected_intent": "bank_operations_by_contract", "expected_mode": "address_query" }, { "id": "S055", - "text": "ёпт, покажи банк операции по дог 15/24", + "text": "ёпт, покажи банк операции по дог 19/15", "expected_intent": "bank_operations_by_contract", "expected_mode": "address_query" }, { "id": "S056", - "text": "по контракту 15/24 платежки", + "text": "по контракту 19/15 платежки", "expected_intent": "bank_operations_by_contract", "expected_mode": "address_query" }, @@ -533,73 +533,73 @@ }, { "id": "X029", - "text": "доки по договору 15/24 за 2020", + "text": "доки по договору 19/15 за 2020", "expected_intent": "list_documents_by_contract", "expected_mode": "address_query" }, { "id": "X030", - "text": "покажи документы контракт 15/24", + "text": "покажи документы контракт 19/15", "expected_intent": "list_documents_by_contract", "expected_mode": "address_query" }, { "id": "X031", - "text": "docs by contract 15/24 2020", + "text": "docs by contract 19/15 2020", "expected_intent": "list_documents_by_contract", "expected_mode": "address_query" }, { "id": "X032", - "text": "по дог 15/24 какие документы", + "text": "по дог 19/15 какие документы", "expected_intent": "list_documents_by_contract", "expected_mode": "address_query" }, { "id": "X033", - "text": "договор 15/24 выведи доки", + "text": "договор 19/15 выведи доки", "expected_intent": "list_documents_by_contract", "expected_mode": "address_query" }, { "id": "X034", - "text": "нах покажи документы по 15/24", + "text": "нах покажи документы по 19/15", "expected_intent": "list_documents_by_contract", "expected_mode": "address_query" }, { "id": "X035", - "text": "банк операции по договору 15/24", + "text": "банк операции по договору 19/15", "expected_intent": "bank_operations_by_contract", "expected_mode": "address_query" }, { "id": "X036", - "text": "платежки по дог 15/24", + "text": "платежки по дог 19/15", "expected_intent": "bank_operations_by_contract", "expected_mode": "address_query" }, { "id": "X037", - "text": "выписка по контракту 15/24", + "text": "выписка по контракту 19/15", "expected_intent": "bank_operations_by_contract", "expected_mode": "address_query" }, { "id": "X038", - "text": "bank ops by contract 15/24", + "text": "bank ops by contract 19/15", "expected_intent": "bank_operations_by_contract", "expected_mode": "address_query" }, { "id": "X039", - "text": "покажи банк опер по дог 15/24 пж", + "text": "покажи банк опер по дог 19/15 пж", "expected_intent": "bank_operations_by_contract", "expected_mode": "address_query" }, { "id": "X040", - "text": "епт транзакции договор 15/24", + "text": "епт транзакции договор 19/15", "expected_intent": "bank_operations_by_contract", "expected_mode": "address_query" }, @@ -618,3 +618,4 @@ "session": "chain_balance_60_extra" } ] + diff --git a/docs/ADDRESS/runs/2026-03-29_Address_Query_Runtime_V1_M2_2_Documents_BankOps_By_Counterparty/assistant_window_dry_run_results.json b/docs/ADDRESS/runs/2026-03-29_Address_Query_Runtime_V1_M2_2_Documents_BankOps_By_Counterparty/assistant_window_dry_run_results.json index 3700d7f..d13ad40 100644 --- a/docs/ADDRESS/runs/2026-03-29_Address_Query_Runtime_V1_M2_2_Documents_BankOps_By_Counterparty/assistant_window_dry_run_results.json +++ b/docs/ADDRESS/runs/2026-03-29_Address_Query_Runtime_V1_M2_2_Documents_BankOps_By_Counterparty/assistant_window_dry_run_results.json @@ -84,7 +84,7 @@ }, { "id": "Q4", - "question": "show documents by contract 15/24", + "question": "show documents by contract 24/15", "expected_intent": "unknown", "http_status": 200, "ok": true, @@ -95,7 +95,7 @@ "extracted_filters": { "sort": "period_desc", "limit": 20, - "contract": "15/24" + "contract": "24/15" }, "missing_required_filters": [], "mcp_call_status": "skipped", diff --git a/docs/ADDRESS/runs/2026-03-29_Address_Query_Runtime_V1_M2_3_DocumentsFormingBalance_DataAwareAcceptance/assistant_window_dry_run_results.json b/docs/ADDRESS/runs/2026-03-29_Address_Query_Runtime_V1_M2_3_DocumentsFormingBalance_DataAwareAcceptance/assistant_window_dry_run_results.json index e9165b0..fed520f 100644 --- a/docs/ADDRESS/runs/2026-03-29_Address_Query_Runtime_V1_M2_3_DocumentsFormingBalance_DataAwareAcceptance/assistant_window_dry_run_results.json +++ b/docs/ADDRESS/runs/2026-03-29_Address_Query_Runtime_V1_M2_3_DocumentsFormingBalance_DataAwareAcceptance/assistant_window_dry_run_results.json @@ -197,7 +197,7 @@ }, { "id": "Q7", - "question": "show documents by contract 15/24", + "question": "show documents by contract 24/15", "expected_intent": "unknown", "http_status": 200, "ok": true, @@ -208,11 +208,11 @@ "extracted_filters": { "sort": "period_desc", "limit": 20, - "contract": "15/24" + "contract": "24/15" }, "missing_required_filters": [], "anchor_type": "contract", - "anchor_value_raw": "15/24", + "anchor_value_raw": "24/15", "resolver_confidence": "medium", "mcp_call_status": "skipped", "rows_fetched": 0, diff --git a/docs/ADDRESS/runs/2026-03-29_Address_Query_Runtime_V1_M2_3_DocumentsFormingBalance_DataAwareAcceptance/chat_export_data_aware_live.md b/docs/ADDRESS/runs/2026-03-29_Address_Query_Runtime_V1_M2_3_DocumentsFormingBalance_DataAwareAcceptance/chat_export_data_aware_live.md index b2a5192..a51ffd8 100644 --- a/docs/ADDRESS/runs/2026-03-29_Address_Query_Runtime_V1_M2_3_DocumentsFormingBalance_DataAwareAcceptance/chat_export_data_aware_live.md +++ b/docs/ADDRESS/runs/2026-03-29_Address_Query_Runtime_V1_M2_3_DocumentsFormingBalance_DataAwareAcceptance/chat_export_data_aware_live.md @@ -51,7 +51,7 @@ Preview: Для точного адреснРЧто РЅСѓР¶РЅРѕ уточнить: укажите контрагента или номер/название РґРѕРіРѕРІРѕСЂР°. ## Q7 -Question: show documents by contract 15/24 +Question: show documents by contract 24/15 Detected intent: unknown Reply type: partial_coverage Preview: Этот запрос РЅРµ РїРѕРґС…РѕРґРёС‚ РїРѕРґ address_query V1. diff --git a/docs/ADDRESS/runs/2026-03-29_Address_Query_Runtime_V1_M2_3_DocumentsFormingBalance_DataAwareAcceptance/data_aware_acceptance_case_matrix.md b/docs/ADDRESS/runs/2026-03-29_Address_Query_Runtime_V1_M2_3_DocumentsFormingBalance_DataAwareAcceptance/data_aware_acceptance_case_matrix.md index 472ae69..28a9eef 100644 --- a/docs/ADDRESS/runs/2026-03-29_Address_Query_Runtime_V1_M2_3_DocumentsFormingBalance_DataAwareAcceptance/data_aware_acceptance_case_matrix.md +++ b/docs/ADDRESS/runs/2026-03-29_Address_Query_Runtime_V1_M2_3_DocumentsFormingBalance_DataAwareAcceptance/data_aware_acceptance_case_matrix.md @@ -10,7 +10,7 @@ | Q4 | show bank operations by counterparty Alfa from 2020-07-01 to 2020-07-31 | bank_operations_by_counterparty | address_bank_operations_by_counterparty_v1 | TBD (positive candidate) | no | limited(empty_match) | bank recipe path correct | | Q5 | show account balance 60 today | account_balance_snapshot | address_movements_account_snapshot_v1 | TBD (positive candidate) | no | limited(empty_match) | aggregate lane stable | | Q6 | show open items by contract | open_items_by_counterparty_or_contract | - | no | no | limited(missing_anchor) | expected safety behavior | -| Q7 | show documents by contract 15/24 | unknown | - | no | no | limited(unsupported) | expected until M2.4 | +| Q7 | show documents by contract 24/15 | unknown | - | no | no | limited(unsupported) | expected until M2.4 | | Q8 | who owes us and who we owe today | list_receivables_counterparties | address_movements_receivables_v1 | no (compound detect-only) | no | limited(empty_match) | decomposition still not implemented | ## Matrix note diff --git a/docs/ADDRESS/runs/2026-03-29_Address_Query_Runtime_V1_M2_3_DocumentsFormingBalance_DataAwareAcceptance/debug_payloads/Q7.json b/docs/ADDRESS/runs/2026-03-29_Address_Query_Runtime_V1_M2_3_DocumentsFormingBalance_DataAwareAcceptance/debug_payloads/Q7.json index e20a49a..00ffffd 100644 --- a/docs/ADDRESS/runs/2026-03-29_Address_Query_Runtime_V1_M2_3_DocumentsFormingBalance_DataAwareAcceptance/debug_payloads/Q7.json +++ b/docs/ADDRESS/runs/2026-03-29_Address_Query_Runtime_V1_M2_3_DocumentsFormingBalance_DataAwareAcceptance/debug_payloads/Q7.json @@ -1,6 +1,6 @@ { "id": "Q7", - "question": "show documents by contract 15/24", + "question": "show documents by contract 24/15", "expected_intent": "unknown", "http_status": 200, "ok": true, @@ -11,13 +11,13 @@ "extracted_filters": { "sort": "period_desc", "limit": 20, - "contract": "15/24" + "contract": "24/15" }, "missing_required_filters": [ ], "anchor_type": "contract", - "anchor_value_raw": "15/24", + "anchor_value_raw": "24/15", "resolver_confidence": "medium", "mcp_call_status": "skipped", "rows_fetched": 0, diff --git a/docs/ADDRESS/runs/2026-03-29_Address_Query_Runtime_V1_M2_3_DocumentsFormingBalance_DataAwareAcceptance/live_call_inventory_address.json b/docs/ADDRESS/runs/2026-03-29_Address_Query_Runtime_V1_M2_3_DocumentsFormingBalance_DataAwareAcceptance/live_call_inventory_address.json index 4356455..48cbee1 100644 --- a/docs/ADDRESS/runs/2026-03-29_Address_Query_Runtime_V1_M2_3_DocumentsFormingBalance_DataAwareAcceptance/live_call_inventory_address.json +++ b/docs/ADDRESS/runs/2026-03-29_Address_Query_Runtime_V1_M2_3_DocumentsFormingBalance_DataAwareAcceptance/live_call_inventory_address.json @@ -91,7 +91,7 @@ }, { "case_id": "Q7", - "question": "show documents by contract 15/24", + "question": "show documents by contract 24/15", "detected_intent": "unknown", "selected_recipe": null, "mcp_call_status": "skipped", diff --git a/docs/ADDRESS/runs/2026-04-02_Address_Followup_Context_Chains_2026-04-02_13-47-Run1/README.md b/docs/ADDRESS/runs/2026-04-02_Address_Followup_Context_Chains_2026-04-02_13-47-Run1/README.md new file mode 100644 index 0000000..68e6541 --- /dev/null +++ b/docs/ADDRESS/runs/2026-04-02_Address_Followup_Context_Chains_2026-04-02_13-47-Run1/README.md @@ -0,0 +1,28 @@ +# 2026-04-02_Address_Followup_Context_Chains_2026-04-02_13-47-Run1 + +Generated at: 2026-04-02T13:49:07 +Questions file: X:\1C\NDC_1C\docs\ADDRESS\question_sets\address_followup_context_chains_2026-04-02.json +Backend URL: http://127.0.0.1:8787/api/assistant/message +LLM: local / qwen2.5-14b-instruct-1m @ http://127.0.0.1:1234 +Strict policy: route + +## Totals +- questions_total: 25 +- ok_200_count: 25 +- semantic_pass_count: 18 +- semantic_pass_rate: 0.72 +- route_pass_count: 17 +- route_pass_rate: 0.68 +- strict_pass_count: 17 +- strict_pass_rate: 0.68 +- factual_count: 22 +- partial_coverage_count: 3 +- clarification_required_count: 0 +- http_error_count: 0 +- llm_decomposition_applied_count: 12 +- avg_elapsed_ms: 4581.7 + +## Files +- run_summary.json +- full_live_results.json +- failures_only.json diff --git a/docs/ADDRESS/runs/2026-04-02_Address_Followup_Context_Chains_2026-04-02_13-47-Run1/failures_only.json b/docs/ADDRESS/runs/2026-04-02_Address_Followup_Context_Chains_2026-04-02_13-47-Run1/failures_only.json new file mode 100644 index 0000000..27f10dc --- /dev/null +++ b/docs/ADDRESS/runs/2026-04-02_Address_Followup_Context_Chains_2026-04-02_13-47-Run1/failures_only.json @@ -0,0 +1,1205 @@ +[ + { + "index": 14, + "id": "F014", + "question": "раскрой 62 документами на ту же дату", + "session": "chain_balance_c", + "session_id": "asst-2026-04-02_Address_Followup_Context_Chains_2026-04-02_13-47-Run1-chain_balance_c", + "status_code": 200, + "ok": true, + "elapsed_ms": 7343, + "reply_type": "factual", + "trace_id": "address-74IhAbkkza", + "assistant_reply": "Точный якорь не подтвердился в текущем окне live-данных; показаны ближайшие доступные документы/операции по выбранному типу.\nСобран список документов по контрагенту (live address lane).\nСтрок отобрано: 2.\n1. 2020-05-21T12:00:00Z | Поступление на расчетный счет 00000000023 от 21.05.2020 12:00:00 | 0 / 0 | 250546.24 | аналитика: ЗАО Ремонтно-строительная фирма «Ремстройсервис»\n2. 2020-05-15T12:00:02Z | Поступление на расчетный счет 00000000022 от 15.05.2020 12:00:02 | 0 / 0 | 765000 | аналитика: ПрофТренд,ООО", + "assistant_reply_first_line": "Точный якорь не подтвердился в текущем окне live-данных; показаны ближайшие доступные документы/операции по выбранному типу.", + "expected_intent": "documents_forming_balance", + "actual_intent": "list_documents_by_counterparty", + "intent_match": false, + "expected_mode": "address_query", + "actual_mode": "address_query", + "mode_match": true, + "expected_reply_type": null, + "reply_match": true, + "semantic_pass": false, + "route_pass": false, + "route_health": "ok_or_factual", + "strict_policy": "route", + "strict_pass": false, + "selected_recipe": "address_documents_by_counterparty_v1", + "missing_required_filters": [], + "match_failure_stage": "materialized_but_not_anchor_matched", + "match_failure_reason": "account_anchor_not_matched_in_materialized_rows", + "rows_fetched": 20, + "rows_matched": 2, + "mcp_call_status": "matched_non_empty", + "limited_reason_category": null, + "llm_decomposition_applied": true, + "llm_decomposition_reason": "normalized_fragment_applied", + "fallback_rule_hit": null, + "debug_payload": { + "trace_id": "address-74IhAbkkza", + "prompt_version": "address_query_runtime_v1", + "schema_version": "address_query_runtime_v1", + "fallback_type": "none", + "route_summary": null, + "fragments": [], + "requirements_extracted": [], + "coverage_report": { + "requirements_total": 0, + "requirements_covered": 0, + "requirements_uncovered": [], + "requirements_partially_covered": [], + "clarification_needed_for": [], + "out_of_scope_requirements": [] + }, + "routes": [], + "retrieval_status": [], + "retrieval_results": [], + "answer_grounding_check": { + "status": "grounded", + "route_subject_match": true, + "missing_requirements": [], + "reasons": [ + "address_entity_detected", + "document_list_signal_detected", + "documents_by_counterparty_signal_detected", + "period_from_followup_context", + "address_followup_context_applied", + "anchor_not_matched_fallback_rows" + ], + "why_included_summary": [], + "selection_reason_summary": [] + }, + "dropped_intent_segments": [], + "detected_mode": "address_query", + "detected_mode_confidence": "medium", + "query_shape": "DOCUMENT_LIST", + "query_shape_confidence": "medium", + "detected_intent": "list_documents_by_counterparty", + "detected_intent_confidence": "medium", + "extracted_filters": { + "sort": "period_desc", + "limit": 20, + "account": "62", + "counterparty": "раскрыть", + "period_from": "2020-05-01", + "period_to": "2020-05-31" + }, + "missing_required_filters": [], + "selected_recipe": "address_documents_by_counterparty_v1", + "mcp_call_status_legacy": "matched_non_empty", + "account_scope_mode": "preferred", + "account_scope_fallback_applied": false, + "anchor_type": "counterparty", + "anchor_value_raw": "раскрыть", + "anchor_value_resolved": "раскрыть", + "resolver_confidence": "medium", + "ambiguity_count": 0, + "match_failure_stage": "materialized_but_not_anchor_matched", + "match_failure_reason": "account_anchor_not_matched_in_materialized_rows", + "mcp_call_status": "matched_non_empty", + "rows_fetched": 20, + "raw_rows_received": 20, + "rows_after_account_scope": 2, + "rows_after_recipe_filter": 0, + "rows_materialized": 2, + "rows_matched": 2, + "raw_row_keys_sample": [ + "Период", + "Регистратор", + "СчетДт", + "СчетКт", + "Сумма", + "Контрагент", + "Period", + "Registrator", + "Amount" + ], + "materialization_drop_reason": "none", + "account_token_raw": "62", + "account_token_normalized": "62", + "account_scope_fields_checked": [ + "account_dt", + "account_kt", + "registrator", + "analytics" + ], + "account_scope_match_strategy": "account_code_regex_plus_alias_map_v1", + "account_scope_drop_reason": "not_applicable", + "runtime_readiness": "LIVE_QUERYABLE_WITH_LIMITS", + "limited_reason_category": null, + "response_type": "FACTUAL_LIST", + "execution_lane": "address_query", + "llm_decomposition_applied": true, + "llm_decomposition_attempted": true, + "llm_provider_used": "local", + "llm_decomposition_trace_id": "HyfJ4nZGaCEupV", + "llm_decomposition_effective_message": "раскрыть счет 62 документами, указанными на ту же дату", + "llm_decomposition_reason": "normalized_fragment_applied", + "fallback_rule_hit": null, + "sanitized_user_message": "раскрой 62 документами на ту же дату", + "tool_gate_decision": "run_address_lane", + "tool_gate_reason": "address_mode_classifier_detected", + "answer_structure_v11": null, + "investigation_state_snapshot": null, + "normalized": null, + "normalizer_output": { + "trace_id": "HyfJ4nZGaCEupV", + "prompt_version": "normalizer_v2_0_2", + "applied": true, + "effective_message": "раскрыть счет 62 документами, указанными на ту же дату" + } + }, + "error_code": null, + "error_message": null + }, + { + "index": 15, + "id": "F015", + "question": "вернись на 2020-12-31 по 60", + "session": "chain_balance_c", + "session_id": "asst-2026-04-02_Address_Followup_Context_Chains_2026-04-02_13-47-Run1-chain_balance_c", + "status_code": 200, + "ok": true, + "elapsed_ms": 2989, + "reply_type": "factual", + "trace_id": "address-cN36pRe4OG", + "assistant_reply": "Точный якорь не подтвердился в текущем окне live-данных; показаны ближайшие доступные документы/операции по выбранному типу.\nСобран список документов по контрагенту (live address lane).\nСтрок отобрано: 5.\n1. 2020-12-30T12:00:00Z | Поступление на расчетный счет 00000000044 от 30.12.2020 12:00:00 | 0 / 0 | 3248300 | аналитика: Группа\n2. 2020-12-16T16:20:53Z | Поступление на расчетный счет 00000000043 от 16.12.2020 16:20:53 | 0 / 0 | 216600 | аналитика: Группа\n3. 2020-12-16T16:20:52Z | Списание с расчетного счета 00000000294 от 16.12.2020 16:20:52 | 0 / 0 | 3849.26 | аналитика: УФК по г. Москве (для ГУ - Отделения ПФР по г. Москве и МО)\n4. 2020-12-16T16:20:51Z | Списание с расчетного счета 00000000293 от 16.12.2020 16:20:51 | 0 / 0 | 60 | аналитика: СБЕРБАНК, ПАО\n5. 2020-12-14T12:00:00Z | Поступление на расчетный счет 00000000042 от 14.12.2020 12:00:00 | 0 / 0 | 200000 | аналитика: Группа", + "assistant_reply_first_line": "Точный якорь не подтвердился в текущем окне live-данных; показаны ближайшие доступные документы/операции по выбранному типу.", + "expected_intent": "account_balance_snapshot", + "actual_intent": "list_documents_by_counterparty", + "intent_match": false, + "expected_mode": "address_query", + "actual_mode": "address_query", + "mode_match": true, + "expected_reply_type": null, + "reply_match": true, + "semantic_pass": false, + "route_pass": false, + "route_health": "ok_or_factual", + "strict_policy": "route", + "strict_pass": false, + "selected_recipe": "address_documents_by_counterparty_v1", + "missing_required_filters": [], + "match_failure_stage": "materialized_but_not_anchor_matched", + "match_failure_reason": "counterparty_anchor_not_matched_in_materialized_rows", + "rows_fetched": 20, + "rows_matched": 5, + "mcp_call_status": "matched_non_empty", + "limited_reason_category": null, + "llm_decomposition_applied": false, + "llm_decomposition_reason": "not_address_like", + "fallback_rule_hit": null, + "debug_payload": { + "trace_id": "address-cN36pRe4OG", + "prompt_version": "address_query_runtime_v1", + "schema_version": "address_query_runtime_v1", + "fallback_type": "none", + "route_summary": null, + "fragments": [], + "requirements_extracted": [], + "coverage_report": { + "requirements_total": 0, + "requirements_covered": 0, + "requirements_uncovered": [], + "requirements_partially_covered": [], + "clarification_needed_for": [], + "out_of_scope_requirements": [] + }, + "routes": [], + "retrieval_status": [], + "retrieval_results": [], + "answer_grounding_check": { + "status": "grounded", + "route_subject_match": true, + "missing_requirements": [], + "reasons": [ + "no_address_or_deep_signal", + "address_mode_from_followup_context", + "shape_not_detected", + "intent_not_supported_in_v1", + "intent_from_followup_context", + "counterparty_from_followup_context", + "address_followup_context_applied", + "anchor_not_matched_fallback_rows" + ], + "why_included_summary": [], + "selection_reason_summary": [] + }, + "dropped_intent_segments": [], + "detected_mode": "address_query", + "detected_mode_confidence": "medium", + "query_shape": "UNKNOWN", + "query_shape_confidence": "low", + "detected_intent": "list_documents_by_counterparty", + "detected_intent_confidence": "low", + "extracted_filters": { + "sort": "period_desc", + "limit": 20, + "period_from": "2020-12-01", + "period_to": "2020-12-31", + "counterparty": "раскрыть" + }, + "missing_required_filters": [], + "selected_recipe": "address_documents_by_counterparty_v1", + "mcp_call_status_legacy": "matched_non_empty", + "account_scope_mode": "preferred", + "account_scope_fallback_applied": false, + "anchor_type": "counterparty", + "anchor_value_raw": "раскрыть", + "anchor_value_resolved": "раскрыть", + "resolver_confidence": "medium", + "ambiguity_count": 0, + "match_failure_stage": "materialized_but_not_anchor_matched", + "match_failure_reason": "counterparty_anchor_not_matched_in_materialized_rows", + "mcp_call_status": "matched_non_empty", + "rows_fetched": 20, + "raw_rows_received": 20, + "rows_after_account_scope": 5, + "rows_after_recipe_filter": 0, + "rows_materialized": 5, + "rows_matched": 5, + "raw_row_keys_sample": [ + "Период", + "Регистратор", + "СчетДт", + "СчетКт", + "Сумма", + "Контрагент", + "Period", + "Registrator", + "Amount" + ], + "materialization_drop_reason": "none", + "account_token_raw": null, + "account_token_normalized": null, + "account_scope_fields_checked": [ + "account_dt", + "account_kt", + "registrator", + "analytics" + ], + "account_scope_match_strategy": "account_code_regex_plus_alias_map_v1", + "account_scope_drop_reason": "not_applicable", + "runtime_readiness": "LIVE_QUERYABLE_WITH_LIMITS", + "limited_reason_category": null, + "response_type": "FACTUAL_LIST", + "execution_lane": "address_query", + "llm_decomposition_applied": false, + "llm_decomposition_attempted": false, + "llm_provider_used": "local", + "llm_decomposition_trace_id": null, + "llm_decomposition_effective_message": "вернись на 2020-12-31 по 60", + "llm_decomposition_reason": "not_address_like", + "fallback_rule_hit": null, + "sanitized_user_message": "вернись на 2020-12-31 по 60", + "tool_gate_decision": "run_address_lane", + "tool_gate_reason": "address_signal_detected", + "answer_structure_v11": null, + "investigation_state_snapshot": null, + "normalized": null, + "normalizer_output": null + }, + "error_code": null, + "error_message": null + }, + { + "index": 17, + "id": "F017", + "question": "а теперь банковские операции", + "session": "chain_contract_d", + "session_id": "asst-2026-04-02_Address_Followup_Context_Chains_2026-04-02_13-47-Run1-chain_contract_d", + "status_code": 200, + "ok": true, + "elapsed_ms": 8035, + "reply_type": "factual", + "trace_id": "address-0xLFU245v5", + "assistant_reply": "Точный якорь не подтвердился в текущем окне live-данных; показаны ближайшие доступные документы/операции по выбранному типу.\nСобран список банковских операций по контрагенту (live address lane).\nСтрок отобрано: 5.\n1. 2020-12-30T12:00:00Z | Поступление на расчетный счет 00000000044 от 30.12.2020 12:00:00 | 0 / 0 | 3248300 | аналитика: Группа\n2. 2020-12-16T16:20:53Z | Поступление на расчетный счет 00000000043 от 16.12.2020 16:20:53 | 0 / 0 | 216600 | аналитика: Группа\n3. 2020-12-16T16:20:52Z | Списание с расчетного счета 00000000294 от 16.12.2020 16:20:52 | 0 / 0 | 3849.26 | аналитика: УФК по г. Москве (для ГУ - Отделения ПФР по г. Москве и МО)\n4. 2020-12-16T16:20:51Z | Списание с расчетного счета 00000000293 от 16.12.2020 16:20:51 | 0 / 0 | 60 | аналитика: СБЕРБАНК, ПАО\n5. 2020-12-14T12:00:00Z | Поступление на расчетный счет 00000000042 от 14.12.2020 12:00:00 | 0 / 0 | 200000 | аналитика: Группа", + "assistant_reply_first_line": "Точный якорь не подтвердился в текущем окне live-данных; показаны ближайшие доступные документы/операции по выбранному типу.", + "expected_intent": "bank_operations_by_contract", + "actual_intent": "bank_operations_by_counterparty", + "intent_match": false, + "expected_mode": "address_query", + "actual_mode": "address_query", + "mode_match": true, + "expected_reply_type": null, + "reply_match": true, + "semantic_pass": false, + "route_pass": false, + "route_health": "ok_or_factual", + "strict_policy": "route", + "strict_pass": false, + "selected_recipe": "address_bank_operations_by_counterparty_v1", + "missing_required_filters": [], + "match_failure_stage": "materialized_but_not_anchor_matched", + "match_failure_reason": "counterparty_anchor_not_matched_in_materialized_rows", + "rows_fetched": 20, + "rows_matched": 5, + "mcp_call_status": "matched_non_empty", + "limited_reason_category": null, + "llm_decomposition_applied": false, + "llm_decomposition_reason": "normalized_fragment_same", + "fallback_rule_hit": null, + "debug_payload": { + "trace_id": "address-0xLFU245v5", + "prompt_version": "address_query_runtime_v1", + "schema_version": "address_query_runtime_v1", + "fallback_type": "none", + "route_summary": null, + "fragments": [], + "requirements_extracted": [], + "coverage_report": { + "requirements_total": 0, + "requirements_covered": 0, + "requirements_uncovered": [], + "requirements_partially_covered": [], + "clarification_needed_for": [], + "out_of_scope_requirements": [] + }, + "routes": [], + "retrieval_status": [], + "retrieval_results": [], + "answer_grounding_check": { + "status": "grounded", + "route_subject_match": true, + "missing_requirements": [], + "reasons": [ + "address_entity_detected", + "shape_not_detected", + "bank_ops_by_counterparty_signal_detected", + "period_from_followup_context", + "address_followup_context_applied", + "anchor_not_matched_fallback_rows" + ], + "why_included_summary": [], + "selection_reason_summary": [] + }, + "dropped_intent_segments": [], + "detected_mode": "address_query", + "detected_mode_confidence": "medium", + "query_shape": "UNKNOWN", + "query_shape_confidence": "low", + "detected_intent": "bank_operations_by_counterparty", + "detected_intent_confidence": "medium", + "extracted_filters": { + "sort": "period_desc", + "limit": 20, + "counterparty": "теперь", + "period_from": "2020-01-01", + "period_to": "2020-12-31" + }, + "missing_required_filters": [], + "selected_recipe": "address_bank_operations_by_counterparty_v1", + "mcp_call_status_legacy": "matched_non_empty", + "account_scope_mode": "preferred", + "account_scope_fallback_applied": false, + "anchor_type": "counterparty", + "anchor_value_raw": "теперь", + "anchor_value_resolved": "теперь", + "resolver_confidence": "medium", + "ambiguity_count": 0, + "match_failure_stage": "materialized_but_not_anchor_matched", + "match_failure_reason": "counterparty_anchor_not_matched_in_materialized_rows", + "mcp_call_status": "matched_non_empty", + "rows_fetched": 20, + "raw_rows_received": 20, + "rows_after_account_scope": 5, + "rows_after_recipe_filter": 0, + "rows_materialized": 5, + "rows_matched": 5, + "raw_row_keys_sample": [ + "Период", + "Регистратор", + "СчетДт", + "СчетКт", + "Сумма", + "Контрагент", + "Period", + "Registrator", + "Amount" + ], + "materialization_drop_reason": "none", + "account_token_raw": null, + "account_token_normalized": null, + "account_scope_fields_checked": [ + "account_dt", + "account_kt", + "registrator", + "analytics" + ], + "account_scope_match_strategy": "account_code_regex_plus_alias_map_v1", + "account_scope_drop_reason": "not_applicable", + "runtime_readiness": "LIVE_QUERYABLE_WITH_LIMITS", + "limited_reason_category": null, + "response_type": "FACTUAL_LIST", + "execution_lane": "address_query", + "llm_decomposition_applied": false, + "llm_decomposition_attempted": true, + "llm_provider_used": "local", + "llm_decomposition_trace_id": "CrJCUxlPsSFAC7", + "llm_decomposition_effective_message": "а теперь банковские операции", + "llm_decomposition_reason": "normalized_fragment_same", + "fallback_rule_hit": null, + "sanitized_user_message": "а теперь банковские операции", + "tool_gate_decision": "run_address_lane", + "tool_gate_reason": "address_mode_classifier_detected", + "answer_structure_v11": null, + "investigation_state_snapshot": null, + "normalized": null, + "normalizer_output": { + "trace_id": "CrJCUxlPsSFAC7", + "prompt_version": "normalizer_v2_0_2", + "applied": false, + "effective_message": "а теперь банковские операции" + } + }, + "error_code": null, + "error_message": null + }, + { + "index": 18, + "id": "F018", + "question": "а теперь только май 2020", + "session": "chain_contract_d", + "session_id": "asst-2026-04-02_Address_Followup_Context_Chains_2026-04-02_13-47-Run1-chain_contract_d", + "status_code": 200, + "ok": true, + "elapsed_ms": 3063, + "reply_type": "factual", + "trace_id": "address-OowUudeajS", + "assistant_reply": "Точный якорь не подтвердился в текущем окне live-данных; показаны ближайшие доступные документы/операции по выбранному типу.\nСобран список банковских операций по контрагенту (live address lane).\nСтрок отобрано: 2.\n1. 2020-05-21T12:00:00Z | Поступление на расчетный счет 00000000023 от 21.05.2020 12:00:00 | 0 / 0 | 250546.24 | аналитика: ЗАО Ремонтно-строительная фирма «Ремстройсервис»\n2. 2020-05-15T12:00:02Z | Поступление на расчетный счет 00000000022 от 15.05.2020 12:00:02 | 0 / 0 | 765000 | аналитика: ПрофТренд,ООО", + "assistant_reply_first_line": "Точный якорь не подтвердился в текущем окне live-данных; показаны ближайшие доступные документы/операции по выбранному типу.", + "expected_intent": "bank_operations_by_contract", + "actual_intent": "bank_operations_by_counterparty", + "intent_match": false, + "expected_mode": "address_query", + "actual_mode": "address_query", + "mode_match": true, + "expected_reply_type": null, + "reply_match": true, + "semantic_pass": false, + "route_pass": false, + "route_health": "ok_or_factual", + "strict_policy": "route", + "strict_pass": false, + "selected_recipe": "address_bank_operations_by_counterparty_v1", + "missing_required_filters": [], + "match_failure_stage": "materialized_but_not_anchor_matched", + "match_failure_reason": "counterparty_anchor_not_matched_in_materialized_rows", + "rows_fetched": 20, + "rows_matched": 2, + "mcp_call_status": "matched_non_empty", + "limited_reason_category": null, + "llm_decomposition_applied": false, + "llm_decomposition_reason": "not_address_like", + "fallback_rule_hit": null, + "debug_payload": { + "trace_id": "address-OowUudeajS", + "prompt_version": "address_query_runtime_v1", + "schema_version": "address_query_runtime_v1", + "fallback_type": "none", + "route_summary": null, + "fragments": [], + "requirements_extracted": [], + "coverage_report": { + "requirements_total": 0, + "requirements_covered": 0, + "requirements_uncovered": [], + "requirements_partially_covered": [], + "clarification_needed_for": [], + "out_of_scope_requirements": [] + }, + "routes": [], + "retrieval_status": [], + "retrieval_results": [], + "answer_grounding_check": { + "status": "grounded", + "route_subject_match": true, + "missing_requirements": [], + "reasons": [ + "no_address_or_deep_signal", + "address_mode_from_followup_context", + "shape_not_detected", + "intent_not_supported_in_v1", + "intent_from_followup_context", + "counterparty_from_followup_context", + "address_followup_context_applied", + "anchor_not_matched_fallback_rows" + ], + "why_included_summary": [], + "selection_reason_summary": [] + }, + "dropped_intent_segments": [], + "detected_mode": "address_query", + "detected_mode_confidence": "medium", + "query_shape": "UNKNOWN", + "query_shape_confidence": "low", + "detected_intent": "bank_operations_by_counterparty", + "detected_intent_confidence": "low", + "extracted_filters": { + "sort": "period_desc", + "limit": 20, + "period_from": "2020-05-01", + "period_to": "2020-05-31", + "counterparty": "теперь" + }, + "missing_required_filters": [], + "selected_recipe": "address_bank_operations_by_counterparty_v1", + "mcp_call_status_legacy": "matched_non_empty", + "account_scope_mode": "preferred", + "account_scope_fallback_applied": false, + "anchor_type": "counterparty", + "anchor_value_raw": "теперь", + "anchor_value_resolved": "теперь", + "resolver_confidence": "medium", + "ambiguity_count": 0, + "match_failure_stage": "materialized_but_not_anchor_matched", + "match_failure_reason": "counterparty_anchor_not_matched_in_materialized_rows", + "mcp_call_status": "matched_non_empty", + "rows_fetched": 20, + "raw_rows_received": 20, + "rows_after_account_scope": 2, + "rows_after_recipe_filter": 0, + "rows_materialized": 2, + "rows_matched": 2, + "raw_row_keys_sample": [ + "Период", + "Регистратор", + "СчетДт", + "СчетКт", + "Сумма", + "Контрагент", + "Period", + "Registrator", + "Amount" + ], + "materialization_drop_reason": "none", + "account_token_raw": null, + "account_token_normalized": null, + "account_scope_fields_checked": [ + "account_dt", + "account_kt", + "registrator", + "analytics" + ], + "account_scope_match_strategy": "account_code_regex_plus_alias_map_v1", + "account_scope_drop_reason": "not_applicable", + "runtime_readiness": "LIVE_QUERYABLE_WITH_LIMITS", + "limited_reason_category": null, + "response_type": "FACTUAL_LIST", + "execution_lane": "address_query", + "llm_decomposition_applied": false, + "llm_decomposition_attempted": false, + "llm_provider_used": "local", + "llm_decomposition_trace_id": null, + "llm_decomposition_effective_message": "а теперь только май 2020", + "llm_decomposition_reason": "not_address_like", + "fallback_rule_hit": null, + "sanitized_user_message": "а теперь только май 2020", + "tool_gate_decision": "run_address_lane", + "tool_gate_reason": "followup_context_detected", + "answer_structure_v11": null, + "investigation_state_snapshot": null, + "normalized": null, + "normalizer_output": null + }, + "error_code": null, + "error_message": null + }, + { + "index": 19, + "id": "F019", + "question": "есть ли открытые позиции на ту же дату", + "session": "chain_contract_d", + "session_id": "asst-2026-04-02_Address_Followup_Context_Chains_2026-04-02_13-47-Run1-chain_contract_d", + "status_code": 200, + "ok": true, + "elapsed_ms": 3086, + "reply_type": "factual", + "trace_id": "address-xXK-0zx9A2", + "assistant_reply": "Точный якорь не подтвердился в текущем окне live-данных; показаны ближайшие доступные документы/операции по выбранному типу.\nСобран список банковских операций по контрагенту (live address lane).\nСтрок отобрано: 2.\n1. 2020-05-21T12:00:00Z | Поступление на расчетный счет 00000000023 от 21.05.2020 12:00:00 | 0 / 0 | 250546.24 | аналитика: ЗАО Ремонтно-строительная фирма «Ремстройсервис»\n2. 2020-05-15T12:00:02Z | Поступление на расчетный счет 00000000022 от 15.05.2020 12:00:02 | 0 / 0 | 765000 | аналитика: ПрофТренд,ООО", + "assistant_reply_first_line": "Точный якорь не подтвердился в текущем окне live-данных; показаны ближайшие доступные документы/операции по выбранному типу.", + "expected_intent": "open_items_by_counterparty_or_contract", + "actual_intent": "bank_operations_by_counterparty", + "intent_match": false, + "expected_mode": "address_query", + "actual_mode": "address_query", + "mode_match": true, + "expected_reply_type": null, + "reply_match": true, + "semantic_pass": false, + "route_pass": false, + "route_health": "ok_or_factual", + "strict_policy": "route", + "strict_pass": false, + "selected_recipe": "address_bank_operations_by_counterparty_v1", + "missing_required_filters": [], + "match_failure_stage": "materialized_but_not_anchor_matched", + "match_failure_reason": "counterparty_anchor_not_matched_in_materialized_rows", + "rows_fetched": 20, + "rows_matched": 2, + "mcp_call_status": "matched_non_empty", + "limited_reason_category": null, + "llm_decomposition_applied": false, + "llm_decomposition_reason": "not_address_like", + "fallback_rule_hit": null, + "debug_payload": { + "trace_id": "address-xXK-0zx9A2", + "prompt_version": "address_query_runtime_v1", + "schema_version": "address_query_runtime_v1", + "fallback_type": "none", + "route_summary": null, + "fragments": [], + "requirements_extracted": [], + "coverage_report": { + "requirements_total": 0, + "requirements_covered": 0, + "requirements_uncovered": [], + "requirements_partially_covered": [], + "clarification_needed_for": [], + "out_of_scope_requirements": [] + }, + "routes": [], + "retrieval_status": [], + "retrieval_results": [], + "answer_grounding_check": { + "status": "grounded", + "route_subject_match": true, + "missing_requirements": [], + "reasons": [ + "no_address_or_deep_signal", + "address_mode_from_followup_context", + "verify_signal_detected", + "intent_not_supported_in_v1", + "intent_from_followup_context", + "counterparty_from_followup_context", + "period_from_followup_context", + "address_followup_context_applied", + "anchor_not_matched_fallback_rows" + ], + "why_included_summary": [], + "selection_reason_summary": [] + }, + "dropped_intent_segments": [], + "detected_mode": "address_query", + "detected_mode_confidence": "medium", + "query_shape": "VERIFY_FACTUAL", + "query_shape_confidence": "medium", + "detected_intent": "bank_operations_by_counterparty", + "detected_intent_confidence": "low", + "extracted_filters": { + "sort": "period_desc", + "limit": 20, + "counterparty": "теперь", + "period_from": "2020-05-01", + "period_to": "2020-05-31" + }, + "missing_required_filters": [], + "selected_recipe": "address_bank_operations_by_counterparty_v1", + "mcp_call_status_legacy": "matched_non_empty", + "account_scope_mode": "preferred", + "account_scope_fallback_applied": false, + "anchor_type": "counterparty", + "anchor_value_raw": "теперь", + "anchor_value_resolved": "теперь", + "resolver_confidence": "medium", + "ambiguity_count": 0, + "match_failure_stage": "materialized_but_not_anchor_matched", + "match_failure_reason": "counterparty_anchor_not_matched_in_materialized_rows", + "mcp_call_status": "matched_non_empty", + "rows_fetched": 20, + "raw_rows_received": 20, + "rows_after_account_scope": 2, + "rows_after_recipe_filter": 0, + "rows_materialized": 2, + "rows_matched": 2, + "raw_row_keys_sample": [ + "Период", + "Регистратор", + "СчетДт", + "СчетКт", + "Сумма", + "Контрагент", + "Period", + "Registrator", + "Amount" + ], + "materialization_drop_reason": "none", + "account_token_raw": null, + "account_token_normalized": null, + "account_scope_fields_checked": [ + "account_dt", + "account_kt", + "registrator", + "analytics" + ], + "account_scope_match_strategy": "account_code_regex_plus_alias_map_v1", + "account_scope_drop_reason": "not_applicable", + "runtime_readiness": "LIVE_QUERYABLE_WITH_LIMITS", + "limited_reason_category": null, + "response_type": "FACTUAL_LIST", + "execution_lane": "address_query", + "llm_decomposition_applied": false, + "llm_decomposition_attempted": false, + "llm_provider_used": "local", + "llm_decomposition_trace_id": null, + "llm_decomposition_effective_message": "есть ли открытые позиции на ту же дату", + "llm_decomposition_reason": "not_address_like", + "fallback_rule_hit": null, + "sanitized_user_message": "есть ли открытые позиции на ту же дату", + "tool_gate_decision": "run_address_lane", + "tool_gate_reason": "followup_context_detected", + "answer_structure_v11": null, + "investigation_state_snapshot": null, + "normalized": null, + "normalizer_output": null + }, + "error_code": null, + "error_message": null + }, + { + "index": 20, + "id": "F020", + "question": "покажи документы по этому же договору", + "session": "chain_contract_d", + "session_id": "asst-2026-04-02_Address_Followup_Context_Chains_2026-04-02_13-47-Run1-chain_contract_d", + "status_code": 200, + "ok": true, + "elapsed_ms": 5599, + "reply_type": "partial_coverage", + "trace_id": "address-1H1bTgJmmq", + "assistant_reply": "Для точного адресного поиска не хватает обязательного якоря.\nПричина: не хватает обязательных фильтров.\nЧто нужно уточнить: уточните: contract.", + "assistant_reply_first_line": "Для точного адресного поиска не хватает обязательного якоря.", + "expected_intent": "list_documents_by_contract", + "actual_intent": "list_documents_by_contract", + "intent_match": true, + "expected_mode": "address_query", + "actual_mode": "address_query", + "mode_match": true, + "expected_reply_type": null, + "reply_match": true, + "semantic_pass": true, + "route_pass": false, + "route_health": "blocked_missing_anchor", + "strict_policy": "route", + "strict_pass": false, + "selected_recipe": "address_documents_by_contract_v1", + "missing_required_filters": [ + "contract" + ], + "match_failure_stage": "none", + "match_failure_reason": null, + "rows_fetched": 0, + "rows_matched": 0, + "mcp_call_status": "skipped", + "limited_reason_category": "missing_anchor", + "llm_decomposition_applied": true, + "llm_decomposition_reason": "normalized_fragment_applied", + "fallback_rule_hit": null, + "debug_payload": { + "trace_id": "address-1H1bTgJmmq", + "prompt_version": "address_query_runtime_v1", + "schema_version": "address_query_runtime_v1", + "fallback_type": "partial", + "route_summary": null, + "fragments": [], + "requirements_extracted": [], + "coverage_report": { + "requirements_total": 0, + "requirements_covered": 0, + "requirements_uncovered": [], + "requirements_partially_covered": [], + "clarification_needed_for": [], + "out_of_scope_requirements": [] + }, + "routes": [], + "retrieval_status": [], + "retrieval_results": [], + "answer_grounding_check": { + "status": "partial", + "route_subject_match": true, + "missing_requirements": [], + "reasons": [ + "address_action_detected", + "address_entity_detected", + "document_list_signal_detected", + "documents_by_contract_signal_detected", + "period_from_followup_context", + "address_followup_context_applied", + "missing_required_filters" + ], + "why_included_summary": [], + "selection_reason_summary": [] + }, + "dropped_intent_segments": [], + "detected_mode": "address_query", + "detected_mode_confidence": "high", + "query_shape": "DOCUMENT_LIST", + "query_shape_confidence": "medium", + "detected_intent": "list_documents_by_contract", + "detected_intent_confidence": "medium", + "extracted_filters": { + "sort": "period_desc", + "limit": 20, + "period_from": "2020-05-01", + "period_to": "2020-05-31" + }, + "missing_required_filters": [ + "contract" + ], + "selected_recipe": "address_documents_by_contract_v1", + "mcp_call_status_legacy": "skipped", + "account_scope_mode": "strict", + "account_scope_fallback_applied": false, + "anchor_type": "unknown", + "anchor_value_raw": null, + "anchor_value_resolved": null, + "resolver_confidence": "low", + "ambiguity_count": 0, + "match_failure_stage": "none", + "match_failure_reason": null, + "mcp_call_status": "skipped", + "rows_fetched": 0, + "raw_rows_received": 0, + "rows_after_account_scope": 0, + "rows_after_recipe_filter": 0, + "rows_materialized": 0, + "rows_matched": 0, + "raw_row_keys_sample": [], + "materialization_drop_reason": "none", + "account_token_raw": null, + "account_token_normalized": null, + "account_scope_fields_checked": [ + "account_dt", + "account_kt", + "registrator", + "analytics" + ], + "account_scope_match_strategy": "account_code_regex_plus_alias_map_v1", + "account_scope_drop_reason": "not_applicable", + "runtime_readiness": "LIVE_QUERYABLE_WITH_LIMITS", + "limited_reason_category": "missing_anchor", + "response_type": "LIMITED_WITH_REASON", + "execution_lane": "address_query", + "llm_decomposition_applied": true, + "llm_decomposition_attempted": true, + "llm_provider_used": "local", + "llm_decomposition_trace_id": "Gtw7g7addpyWU0", + "llm_decomposition_effective_message": "Показать документы по указанному договору.", + "llm_decomposition_reason": "normalized_fragment_applied", + "fallback_rule_hit": null, + "sanitized_user_message": "покажи документы по этому же договору", + "tool_gate_decision": "run_address_lane", + "tool_gate_reason": "address_mode_classifier_detected", + "answer_structure_v11": null, + "investigation_state_snapshot": null, + "normalized": null, + "normalizer_output": { + "trace_id": "Gtw7g7addpyWU0", + "prompt_version": "normalizer_v2_0_2", + "applied": true, + "effective_message": "Показать документы по указанному договору." + } + }, + "error_code": null, + "error_message": null + }, + { + "index": 22, + "id": "F022", + "question": "а теперь открытые позиции по нему", + "session": "chain_contract_e", + "session_id": "asst-2026-04-02_Address_Followup_Context_Chains_2026-04-02_13-47-Run1-chain_contract_e", + "status_code": 200, + "ok": true, + "elapsed_ms": 1068, + "reply_type": "factual", + "trace_id": "address-8Lye0AythS", + "assistant_reply": "Собран список банковских операций по договору (live address lane).\nСтрок отобрано: 2.\n1. 2020-10-15T13:34:53Z | Списание с расчетного счета 00000000246 от 15.10.2020 13:34:53 | 66.02 / 51 | 30819.47\n2. 2020-10-15T13:34:19Z | Списание с расчетного счета 00000000245 от 15.10.2020 13:34:19 | 66.01 / 51 | 134206.53", + "assistant_reply_first_line": "Собран список банковских операций по договору (live address lane).", + "expected_intent": "open_items_by_counterparty_or_contract", + "actual_intent": "bank_operations_by_contract", + "intent_match": false, + "expected_mode": "address_query", + "actual_mode": "address_query", + "mode_match": true, + "expected_reply_type": null, + "reply_match": true, + "semantic_pass": false, + "route_pass": false, + "route_health": "ok_or_factual", + "strict_policy": "route", + "strict_pass": false, + "selected_recipe": "address_bank_operations_by_contract_v1", + "missing_required_filters": [], + "match_failure_stage": "none", + "match_failure_reason": null, + "rows_fetched": 1000, + "rows_matched": 2, + "mcp_call_status": "matched_non_empty", + "limited_reason_category": null, + "llm_decomposition_applied": false, + "llm_decomposition_reason": "not_address_like", + "fallback_rule_hit": null, + "debug_payload": { + "trace_id": "address-8Lye0AythS", + "prompt_version": "address_query_runtime_v1", + "schema_version": "address_query_runtime_v1", + "fallback_type": "none", + "route_summary": null, + "fragments": [], + "requirements_extracted": [], + "coverage_report": { + "requirements_total": 0, + "requirements_covered": 0, + "requirements_uncovered": [], + "requirements_partially_covered": [], + "clarification_needed_for": [], + "out_of_scope_requirements": [] + }, + "routes": [], + "retrieval_status": [], + "retrieval_results": [], + "answer_grounding_check": { + "status": "grounded", + "route_subject_match": true, + "missing_requirements": [], + "reasons": [ + "no_address_or_deep_signal", + "address_mode_from_followup_context", + "shape_not_detected", + "intent_not_supported_in_v1", + "intent_from_followup_context", + "contract_from_followup_context", + "address_followup_context_applied" + ], + "why_included_summary": [], + "selection_reason_summary": [] + }, + "dropped_intent_segments": [], + "detected_mode": "address_query", + "detected_mode_confidence": "medium", + "query_shape": "UNKNOWN", + "query_shape_confidence": "low", + "detected_intent": "bank_operations_by_contract", + "detected_intent_confidence": "low", + "extracted_filters": { + "sort": "period_desc", + "limit": 20, + "contract": "24/15" + }, + "missing_required_filters": [], + "selected_recipe": "address_bank_operations_by_contract_v1", + "mcp_call_status_legacy": "matched_non_empty", + "account_scope_mode": "preferred", + "account_scope_fallback_applied": false, + "anchor_type": "contract", + "anchor_value_raw": "24/15", + "anchor_value_resolved": "24/15", + "resolver_confidence": "medium", + "ambiguity_count": 0, + "match_failure_stage": "none", + "match_failure_reason": null, + "mcp_call_status": "matched_non_empty", + "rows_fetched": 1000, + "raw_rows_received": 1000, + "rows_after_account_scope": 341, + "rows_after_recipe_filter": 2, + "rows_materialized": 341, + "rows_matched": 2, + "raw_row_keys_sample": [ + "Период", + "Регистратор", + "СчетДт", + "СчетКт", + "Сумма", + "Period", + "Registrator", + "AccountDt", + "AccountKt", + "Amount" + ], + "materialization_drop_reason": "none", + "account_token_raw": null, + "account_token_normalized": null, + "account_scope_fields_checked": [ + "account_dt", + "account_kt", + "registrator", + "analytics" + ], + "account_scope_match_strategy": "account_code_regex_plus_alias_map_v1", + "account_scope_drop_reason": "not_applicable", + "runtime_readiness": "LIVE_QUERYABLE_WITH_LIMITS", + "limited_reason_category": null, + "response_type": "FACTUAL_LIST", + "execution_lane": "address_query", + "llm_decomposition_applied": false, + "llm_decomposition_attempted": false, + "llm_provider_used": "local", + "llm_decomposition_trace_id": null, + "llm_decomposition_effective_message": "а теперь открытые позиции по нему", + "llm_decomposition_reason": "not_address_like", + "fallback_rule_hit": null, + "sanitized_user_message": "а теперь открытые позиции по нему", + "tool_gate_decision": "run_address_lane", + "tool_gate_reason": "followup_context_detected", + "answer_structure_v11": null, + "investigation_state_snapshot": null, + "normalized": null, + "normalizer_output": null + }, + "error_code": null, + "error_message": null + }, + { + "index": 23, + "id": "F023", + "question": "а теперь на 2020-12", + "session": "chain_contract_e", + "session_id": "asst-2026-04-02_Address_Followup_Context_Chains_2026-04-02_13-47-Run1-chain_contract_e", + "status_code": 200, + "ok": true, + "elapsed_ms": 2983, + "reply_type": "partial_coverage", + "trace_id": "address-zyTvZBdAS3", + "assistant_reply": "В live-данных по текущему фильтру записи не найдены.\nПричина: по указанному якорю и фильтрам в live-выборке нет строк.\nЧто нужно уточнить: уточните период или снимите часть фильтров.", + "assistant_reply_first_line": "В live-данных по текущему фильтру записи не найдены.", + "expected_intent": "open_items_by_counterparty_or_contract", + "actual_intent": "bank_operations_by_contract", + "intent_match": false, + "expected_mode": "address_query", + "actual_mode": "address_query", + "mode_match": true, + "expected_reply_type": null, + "reply_match": true, + "semantic_pass": false, + "route_pass": false, + "route_health": "likely_blocked_route", + "strict_policy": "route", + "strict_pass": false, + "selected_recipe": "address_bank_operations_by_contract_v1", + "missing_required_filters": [], + "match_failure_stage": "materialized_but_not_anchor_matched", + "match_failure_reason": "contract_anchor_not_matched_in_materialized_rows", + "rows_fetched": 20, + "rows_matched": 0, + "mcp_call_status": "materialized_but_not_anchor_matched", + "limited_reason_category": "empty_match", + "llm_decomposition_applied": false, + "llm_decomposition_reason": "not_address_like", + "fallback_rule_hit": null, + "debug_payload": { + "trace_id": "address-zyTvZBdAS3", + "prompt_version": "address_query_runtime_v1", + "schema_version": "address_query_runtime_v1", + "fallback_type": "partial", + "route_summary": null, + "fragments": [], + "requirements_extracted": [], + "coverage_report": { + "requirements_total": 0, + "requirements_covered": 0, + "requirements_uncovered": [], + "requirements_partially_covered": [], + "clarification_needed_for": [], + "out_of_scope_requirements": [] + }, + "routes": [], + "retrieval_status": [], + "retrieval_results": [], + "answer_grounding_check": { + "status": "partial", + "route_subject_match": true, + "missing_requirements": [], + "reasons": [ + "no_address_or_deep_signal", + "address_mode_from_followup_context", + "shape_not_detected", + "intent_not_supported_in_v1", + "intent_from_followup_context", + "contract_from_followup_context", + "address_followup_context_applied" + ], + "why_included_summary": [], + "selection_reason_summary": [] + }, + "dropped_intent_segments": [], + "detected_mode": "address_query", + "detected_mode_confidence": "medium", + "query_shape": "UNKNOWN", + "query_shape_confidence": "low", + "detected_intent": "bank_operations_by_contract", + "detected_intent_confidence": "low", + "extracted_filters": { + "sort": "period_desc", + "limit": 20, + "period_from": "2020-12-01", + "period_to": "2020-12-31", + "contract": "24/15" + }, + "missing_required_filters": [], + "selected_recipe": "address_bank_operations_by_contract_v1", + "mcp_call_status_legacy": "materialized_but_not_matched", + "account_scope_mode": "preferred", + "account_scope_fallback_applied": true, + "anchor_type": "contract", + "anchor_value_raw": "24/15", + "anchor_value_resolved": "24/15", + "resolver_confidence": "medium", + "ambiguity_count": 0, + "match_failure_stage": "materialized_but_not_anchor_matched", + "match_failure_reason": "contract_anchor_not_matched_in_materialized_rows", + "mcp_call_status": "materialized_but_not_anchor_matched", + "rows_fetched": 20, + "raw_rows_received": 20, + "rows_after_account_scope": 20, + "rows_after_recipe_filter": 0, + "rows_materialized": 20, + "rows_matched": 0, + "raw_row_keys_sample": [ + "Период", + "Регистратор", + "СчетДт", + "СчетКт", + "Сумма", + "Period", + "Registrator", + "AccountDt", + "AccountKt", + "Amount" + ], + "materialization_drop_reason": "none", + "account_token_raw": null, + "account_token_normalized": null, + "account_scope_fields_checked": [ + "account_dt", + "account_kt", + "registrator", + "analytics" + ], + "account_scope_match_strategy": "account_code_regex_plus_alias_map_v1", + "account_scope_drop_reason": "not_applicable", + "runtime_readiness": "LIVE_QUERYABLE_WITH_LIMITS", + "limited_reason_category": "empty_match", + "response_type": "LIMITED_WITH_REASON", + "execution_lane": "address_query", + "llm_decomposition_applied": false, + "llm_decomposition_attempted": false, + "llm_provider_used": "local", + "llm_decomposition_trace_id": null, + "llm_decomposition_effective_message": "а теперь на 2020-12", + "llm_decomposition_reason": "not_address_like", + "fallback_rule_hit": null, + "sanitized_user_message": "а теперь на 2020-12", + "tool_gate_decision": "run_address_lane", + "tool_gate_reason": "followup_context_detected", + "answer_structure_v11": null, + "investigation_state_snapshot": null, + "normalized": null, + "normalizer_output": null + }, + "error_code": null, + "error_message": null + } +] diff --git a/docs/ADDRESS/runs/2026-04-02_Address_Followup_Context_Chains_2026-04-02_13-47-Run1/full_live_results.json b/docs/ADDRESS/runs/2026-04-02_Address_Followup_Context_Chains_2026-04-02_13-47-Run1/full_live_results.json new file mode 100644 index 0000000..568e67e --- /dev/null +++ b/docs/ADDRESS/runs/2026-04-02_Address_Followup_Context_Chains_2026-04-02_13-47-Run1/full_live_results.json @@ -0,0 +1,3848 @@ +{ + "run_id": "2026-04-02_Address_Followup_Context_Chains_2026-04-02_13-47-Run1", + "generated_at": "2026-04-02T13:49:07", + "summary": { + "run_id": "2026-04-02_Address_Followup_Context_Chains_2026-04-02_13-47-Run1", + "generated_at": "2026-04-02T13:49:07", + "source_questions_file": "X:\\1C\\NDC_1C\\docs\\ADDRESS\\question_sets\\address_followup_context_chains_2026-04-02.json", + "backend_url": "http://127.0.0.1:8787/api/assistant/message", + "llm_provider": "local", + "llm_model": "qwen2.5-14b-instruct-1m", + "llm_base_url": "http://127.0.0.1:1234", + "strict_policy": "route", + "totals": { + "questions_total": 25, + "ok_200_count": 25, + "semantic_pass_count": 18, + "semantic_pass_rate": 0.72, + "route_pass_count": 17, + "route_pass_rate": 0.68, + "strict_pass_count": 17, + "strict_pass_rate": 0.68, + "factual_count": 22, + "partial_coverage_count": 3, + "clarification_required_count": 0, + "http_error_count": 0, + "llm_decomposition_applied_count": 12, + "avg_elapsed_ms": 4581.7 + }, + "distributions": { + "reply_type": { + "factual": 22, + "partial_coverage": 3 + }, + "actual_intent": { + "list_documents_by_counterparty": 5, + "account_balance_snapshot": 8, + "documents_forming_balance": 1, + "bank_operations_by_counterparty": 5, + "list_documents_by_contract": 3, + "bank_operations_by_contract": 3 + }, + "actual_mode": { + "address_query": 25 + }, + "mcp_call_status": { + "matched_non_empty": 22, + "no_raw_rows": 1, + "skipped": 1, + "materialized_but_not_anchor_matched": 1 + }, + "limited_reason_category": { + "empty_match": 2, + "missing_anchor": 1 + }, + "route_health": { + "ok_or_factual": 22, + "partial_non_blocking": 1, + "blocked_missing_anchor": 1, + "likely_blocked_route": 1 + } + } + }, + "rows": [ + { + "index": 1, + "id": "F001", + "question": "Покажи документы по СВК за 2020", + "session": "chain_docs_svk_a", + "session_id": "asst-2026-04-02_Address_Followup_Context_Chains_2026-04-02_13-47-Run1-chain_docs_svk_a", + "status_code": 200, + "ok": true, + "elapsed_ms": 5623, + "reply_type": "factual", + "trace_id": "address-lrcuyQCTqp", + "assistant_reply": "Собран список документов по контрагенту (live address lane).\nСтрок отобрано: 3.\n1. 2020-12-30T12:00:00Z | Поступление на расчетный счет 00000000044 от 30.12.2020 12:00:00 | 0 / 0 | 3248300 | аналитика: Группа\n2. 2020-12-16T16:20:53Z | Поступление на расчетный счет 00000000043 от 16.12.2020 16:20:53 | 0 / 0 | 216600 | аналитика: Группа\n3. 2020-12-14T12:00:00Z | Поступление на расчетный счет 00000000042 от 14.12.2020 12:00:00 | 0 / 0 | 200000 | аналитика: Группа", + "assistant_reply_first_line": "Собран список документов по контрагенту (live address lane).", + "expected_intent": "list_documents_by_counterparty", + "actual_intent": "list_documents_by_counterparty", + "intent_match": true, + "expected_mode": "address_query", + "actual_mode": "address_query", + "mode_match": true, + "expected_reply_type": null, + "reply_match": true, + "semantic_pass": true, + "route_pass": true, + "route_health": "ok_or_factual", + "strict_policy": "route", + "strict_pass": true, + "selected_recipe": "address_documents_by_counterparty_v1", + "missing_required_filters": [], + "match_failure_stage": "none", + "match_failure_reason": null, + "rows_fetched": 20, + "rows_matched": 3, + "mcp_call_status": "matched_non_empty", + "limited_reason_category": null, + "llm_decomposition_applied": true, + "llm_decomposition_reason": "normalized_fragment_applied", + "fallback_rule_hit": null, + "debug_payload": { + "trace_id": "address-lrcuyQCTqp", + "prompt_version": "address_query_runtime_v1", + "schema_version": "address_query_runtime_v1", + "fallback_type": "none", + "route_summary": null, + "fragments": [], + "requirements_extracted": [], + "coverage_report": { + "requirements_total": 0, + "requirements_covered": 0, + "requirements_uncovered": [], + "requirements_partially_covered": [], + "clarification_needed_for": [], + "out_of_scope_requirements": [] + }, + "routes": [], + "retrieval_status": [], + "retrieval_results": [], + "answer_grounding_check": { + "status": "grounded", + "route_subject_match": true, + "missing_requirements": [], + "reasons": [ + "address_action_detected", + "address_entity_detected", + "document_list_signal_detected", + "documents_by_counterparty_signal_detected" + ], + "why_included_summary": [], + "selection_reason_summary": [] + }, + "dropped_intent_segments": [], + "detected_mode": "address_query", + "detected_mode_confidence": "high", + "query_shape": "DOCUMENT_LIST", + "query_shape_confidence": "medium", + "detected_intent": "list_documents_by_counterparty", + "detected_intent_confidence": "medium", + "extracted_filters": { + "sort": "period_desc", + "limit": 20, + "counterparty": "СВК", + "period_from": "2020-01-01", + "period_to": "2020-12-31" + }, + "missing_required_filters": [], + "selected_recipe": "address_documents_by_counterparty_v1", + "mcp_call_status_legacy": "matched_non_empty", + "account_scope_mode": "preferred", + "account_scope_fallback_applied": false, + "anchor_type": "counterparty", + "anchor_value_raw": "СВК", + "anchor_value_resolved": "Группа СВК", + "resolver_confidence": "medium", + "ambiguity_count": 0, + "match_failure_stage": "none", + "match_failure_reason": null, + "mcp_call_status": "matched_non_empty", + "rows_fetched": 20, + "raw_rows_received": 20, + "rows_after_account_scope": 5, + "rows_after_recipe_filter": 3, + "rows_materialized": 5, + "rows_matched": 3, + "raw_row_keys_sample": [ + "Период", + "Регистратор", + "СчетДт", + "СчетКт", + "Сумма", + "Контрагент", + "Period", + "Registrator", + "Amount" + ], + "materialization_drop_reason": "none", + "account_token_raw": null, + "account_token_normalized": null, + "account_scope_fields_checked": [ + "account_dt", + "account_kt", + "registrator", + "analytics" + ], + "account_scope_match_strategy": "account_code_regex_plus_alias_map_v1", + "account_scope_drop_reason": "not_applicable", + "runtime_readiness": "LIVE_QUERYABLE_WITH_LIMITS", + "limited_reason_category": null, + "response_type": "FACTUAL_LIST", + "execution_lane": "address_query", + "llm_decomposition_applied": true, + "llm_decomposition_attempted": true, + "llm_provider_used": "local", + "llm_decomposition_trace_id": "wx89qqocmCKC0k", + "llm_decomposition_effective_message": "Показать документы по СВК за период 2020 год.", + "llm_decomposition_reason": "normalized_fragment_applied", + "fallback_rule_hit": null, + "sanitized_user_message": "покажи документы по свк за 2020", + "tool_gate_decision": "run_address_lane", + "tool_gate_reason": "address_mode_classifier_detected", + "answer_structure_v11": null, + "investigation_state_snapshot": null, + "normalized": null, + "normalizer_output": { + "trace_id": "wx89qqocmCKC0k", + "prompt_version": "normalizer_v2_0_2", + "applied": true, + "effective_message": "Показать документы по СВК за период 2020 год." + } + }, + "error_code": null, + "error_message": null + }, + { + "index": 2, + "id": "F002", + "question": "а теперь только за май 2020", + "session": "chain_docs_svk_a", + "session_id": "asst-2026-04-02_Address_Followup_Context_Chains_2026-04-02_13-47-Run1-chain_docs_svk_a", + "status_code": 200, + "ok": true, + "elapsed_ms": 3210, + "reply_type": "factual", + "trace_id": "address-s9vLBNdV6g", + "assistant_reply": "Точный якорь не подтвердился в текущем окне live-данных; показаны ближайшие доступные документы/операции по выбранному типу.\nСобран список документов по контрагенту (live address lane).\nСтрок отобрано: 2.\n1. 2020-05-21T12:00:00Z | Поступление на расчетный счет 00000000023 от 21.05.2020 12:00:00 | 0 / 0 | 250546.24 | аналитика: ЗАО Ремонтно-строительная фирма «Ремстройсервис»\n2. 2020-05-15T12:00:02Z | Поступление на расчетный счет 00000000022 от 15.05.2020 12:00:02 | 0 / 0 | 765000 | аналитика: ПрофТренд,ООО", + "assistant_reply_first_line": "Точный якорь не подтвердился в текущем окне live-данных; показаны ближайшие доступные документы/операции по выбранному типу.", + "expected_intent": "list_documents_by_counterparty", + "actual_intent": "list_documents_by_counterparty", + "intent_match": true, + "expected_mode": "address_query", + "actual_mode": "address_query", + "mode_match": true, + "expected_reply_type": null, + "reply_match": true, + "semantic_pass": true, + "route_pass": true, + "route_health": "ok_or_factual", + "strict_policy": "route", + "strict_pass": true, + "selected_recipe": "address_documents_by_counterparty_v1", + "missing_required_filters": [], + "match_failure_stage": "materialized_but_not_anchor_matched", + "match_failure_reason": "counterparty_anchor_not_matched_in_materialized_rows", + "rows_fetched": 20, + "rows_matched": 2, + "mcp_call_status": "matched_non_empty", + "limited_reason_category": null, + "llm_decomposition_applied": false, + "llm_decomposition_reason": "not_address_like", + "fallback_rule_hit": null, + "debug_payload": { + "trace_id": "address-s9vLBNdV6g", + "prompt_version": "address_query_runtime_v1", + "schema_version": "address_query_runtime_v1", + "fallback_type": "none", + "route_summary": null, + "fragments": [], + "requirements_extracted": [], + "coverage_report": { + "requirements_total": 0, + "requirements_covered": 0, + "requirements_uncovered": [], + "requirements_partially_covered": [], + "clarification_needed_for": [], + "out_of_scope_requirements": [] + }, + "routes": [], + "retrieval_status": [], + "retrieval_results": [], + "answer_grounding_check": { + "status": "grounded", + "route_subject_match": true, + "missing_requirements": [], + "reasons": [ + "no_address_or_deep_signal", + "address_mode_from_followup_context", + "shape_not_detected", + "intent_not_supported_in_v1", + "intent_from_followup_context", + "counterparty_from_followup_context", + "address_followup_context_applied", + "anchor_not_matched_fallback_rows" + ], + "why_included_summary": [], + "selection_reason_summary": [] + }, + "dropped_intent_segments": [], + "detected_mode": "address_query", + "detected_mode_confidence": "medium", + "query_shape": "UNKNOWN", + "query_shape_confidence": "low", + "detected_intent": "list_documents_by_counterparty", + "detected_intent_confidence": "low", + "extracted_filters": { + "sort": "period_desc", + "limit": 20, + "period_from": "2020-05-01", + "period_to": "2020-05-31", + "counterparty": "СВК" + }, + "missing_required_filters": [], + "selected_recipe": "address_documents_by_counterparty_v1", + "mcp_call_status_legacy": "matched_non_empty", + "account_scope_mode": "preferred", + "account_scope_fallback_applied": false, + "anchor_type": "counterparty", + "anchor_value_raw": "СВК", + "anchor_value_resolved": "СВК", + "resolver_confidence": "medium", + "ambiguity_count": 0, + "match_failure_stage": "materialized_but_not_anchor_matched", + "match_failure_reason": "counterparty_anchor_not_matched_in_materialized_rows", + "mcp_call_status": "matched_non_empty", + "rows_fetched": 20, + "raw_rows_received": 20, + "rows_after_account_scope": 2, + "rows_after_recipe_filter": 0, + "rows_materialized": 2, + "rows_matched": 2, + "raw_row_keys_sample": [ + "Период", + "Регистратор", + "СчетДт", + "СчетКт", + "Сумма", + "Контрагент", + "Period", + "Registrator", + "Amount" + ], + "materialization_drop_reason": "none", + "account_token_raw": null, + "account_token_normalized": null, + "account_scope_fields_checked": [ + "account_dt", + "account_kt", + "registrator", + "analytics" + ], + "account_scope_match_strategy": "account_code_regex_plus_alias_map_v1", + "account_scope_drop_reason": "not_applicable", + "runtime_readiness": "LIVE_QUERYABLE_WITH_LIMITS", + "limited_reason_category": null, + "response_type": "FACTUAL_LIST", + "execution_lane": "address_query", + "llm_decomposition_applied": false, + "llm_decomposition_attempted": false, + "llm_provider_used": "local", + "llm_decomposition_trace_id": null, + "llm_decomposition_effective_message": "а теперь только за май 2020", + "llm_decomposition_reason": "not_address_like", + "fallback_rule_hit": null, + "sanitized_user_message": "а теперь только за май 2020", + "tool_gate_decision": "run_address_lane", + "tool_gate_reason": "followup_context_detected", + "answer_structure_v11": null, + "investigation_state_snapshot": null, + "normalized": null, + "normalizer_output": null + }, + "error_code": null, + "error_message": null + }, + { + "index": 3, + "id": "F003", + "question": "а по счету 60.01 на ту же дату", + "session": "chain_docs_svk_a", + "session_id": "asst-2026-04-02_Address_Followup_Context_Chains_2026-04-02_13-47-Run1-chain_docs_svk_a", + "status_code": 200, + "ok": true, + "elapsed_ms": 5886, + "reply_type": "factual", + "trace_id": "address-_22LW_plB5", + "assistant_reply": "Адресный срез по счету собран (по движениям live MCP).\nСтрок отобрано: 5.\nСумма по отобранным движениям: 707200.\n1. 2020-05-22T10:12:50Z | Списание с расчетного счета 00000000147 от 22.05.2020 10:12:50 | 60.01 / 51 | 75367\n2. 2020-05-22T10:12:50Z | Списание с расчетного счета 00000000147 от 22.05.2020 10:12:50 | 60.01 / 51 | 211833\n3. 2020-05-18T12:00:02Z | Списание с расчетного счета 00000000145 от 18.05.2020 12:00:02 | 60.01 / 51 | 187967\n4. 2020-05-18T12:00:02Z | Списание с расчетного счета 00000000145 от 18.05.2020 12:00:02 | 60.01 / 51 | 162033", + "assistant_reply_first_line": "Адресный срез по счету собран (по движениям live MCP).", + "expected_intent": "account_balance_snapshot", + "actual_intent": "account_balance_snapshot", + "intent_match": true, + "expected_mode": "address_query", + "actual_mode": "address_query", + "mode_match": true, + "expected_reply_type": null, + "reply_match": true, + "semantic_pass": true, + "route_pass": true, + "route_health": "ok_or_factual", + "strict_policy": "route", + "strict_pass": true, + "selected_recipe": "address_movements_account_snapshot_v1", + "missing_required_filters": [], + "match_failure_stage": "none", + "match_failure_reason": null, + "rows_fetched": 5, + "rows_matched": 5, + "mcp_call_status": "matched_non_empty", + "limited_reason_category": null, + "llm_decomposition_applied": true, + "llm_decomposition_reason": "normalized_fragment_applied", + "fallback_rule_hit": null, + "debug_payload": { + "trace_id": "address-_22LW_plB5", + "prompt_version": "address_query_runtime_v1", + "schema_version": "address_query_runtime_v1", + "fallback_type": "none", + "route_summary": null, + "fragments": [], + "requirements_extracted": [], + "coverage_report": { + "requirements_total": 0, + "requirements_covered": 0, + "requirements_uncovered": [], + "requirements_partially_covered": [], + "clarification_needed_for": [], + "out_of_scope_requirements": [] + }, + "routes": [], + "retrieval_status": [], + "retrieval_results": [], + "answer_grounding_check": { + "status": "grounded", + "route_subject_match": true, + "missing_requirements": [], + "reasons": [ + "address_entity_detected", + "shape_not_detected", + "account_balance_signal_detected", + "as_of_date_from_followup_context", + "period_from_followup_context", + "address_followup_context_applied" + ], + "why_included_summary": [], + "selection_reason_summary": [] + }, + "dropped_intent_segments": [], + "detected_mode": "address_query", + "detected_mode_confidence": "medium", + "query_shape": "UNKNOWN", + "query_shape_confidence": "low", + "detected_intent": "account_balance_snapshot", + "detected_intent_confidence": "high", + "extracted_filters": { + "sort": "period_desc", + "limit": 20, + "account": "60.01", + "as_of_date": "2020-05-31", + "period_from": "2020-05-01", + "period_to": "2020-05-31" + }, + "missing_required_filters": [], + "selected_recipe": "address_movements_account_snapshot_v1", + "mcp_call_status_legacy": "matched_non_empty", + "account_scope_mode": "strict", + "account_scope_fallback_applied": false, + "anchor_type": "account", + "anchor_value_raw": "60.01", + "anchor_value_resolved": "60.01", + "resolver_confidence": "high", + "ambiguity_count": 0, + "match_failure_stage": "none", + "match_failure_reason": null, + "mcp_call_status": "matched_non_empty", + "rows_fetched": 5, + "raw_rows_received": 5, + "rows_after_account_scope": 5, + "rows_after_recipe_filter": 5, + "rows_materialized": 5, + "rows_matched": 5, + "raw_row_keys_sample": [ + "Период", + "Регистратор", + "СчетДт", + "СчетКт", + "Сумма", + "Period", + "Registrator", + "AccountDt", + "AccountKt", + "Amount" + ], + "materialization_drop_reason": "none", + "account_token_raw": "60.01", + "account_token_normalized": "60.1", + "account_scope_fields_checked": [ + "account_dt", + "account_kt", + "registrator", + "analytics" + ], + "account_scope_match_strategy": "account_code_regex_plus_alias_map_v1", + "account_scope_drop_reason": "rows_remaining_after_scope_filter", + "runtime_readiness": "LIVE_QUERYABLE_WITH_LIMITS", + "limited_reason_category": null, + "response_type": "FACTUAL_SUMMARY", + "execution_lane": "address_query", + "llm_decomposition_applied": true, + "llm_decomposition_attempted": true, + "llm_provider_used": "local", + "llm_decomposition_trace_id": "93LIHx-A7RqK06", + "llm_decomposition_effective_message": "по счету 60.01 на ту же дату", + "llm_decomposition_reason": "normalized_fragment_applied", + "fallback_rule_hit": null, + "sanitized_user_message": "а по счету 60.01 на ту же дату", + "tool_gate_decision": "run_address_lane", + "tool_gate_reason": "address_mode_classifier_detected", + "answer_structure_v11": null, + "investigation_state_snapshot": null, + "normalized": null, + "normalizer_output": { + "trace_id": "93LIHx-A7RqK06", + "prompt_version": "normalizer_v2_0_2", + "applied": true, + "effective_message": "по счету 60.01 на ту же дату" + } + }, + "error_code": null, + "error_message": null + }, + { + "index": 4, + "id": "F004", + "question": "а на ту же дату по 62.01", + "session": "chain_docs_svk_a", + "session_id": "asst-2026-04-02_Address_Followup_Context_Chains_2026-04-02_13-47-Run1-chain_docs_svk_a", + "status_code": 200, + "ok": true, + "elapsed_ms": 1025, + "reply_type": "factual", + "trace_id": "address-4l6g-akwsc", + "assistant_reply": "Адресный срез по счету собран (по движениям live MCP).\nСтрок отобрано: 2.\nСумма по отобранным движениям: 1530000.\n1. 2020-05-18T12:00:01Z | Реализация товаров и услуг 00000000002 от 18.05.2020 12:00:01 | 62.01 / 90.01.1 | 765000\n2. 2020-05-18T12:00:01Z | Реализация товаров и услуг 00000000002 от 18.05.2020 12:00:01 | 62.02 / 62.01 | 765000", + "assistant_reply_first_line": "Адресный срез по счету собран (по движениям live MCP).", + "expected_intent": "account_balance_snapshot", + "actual_intent": "account_balance_snapshot", + "intent_match": true, + "expected_mode": "address_query", + "actual_mode": "address_query", + "mode_match": true, + "expected_reply_type": null, + "reply_match": true, + "semantic_pass": true, + "route_pass": true, + "route_health": "ok_or_factual", + "strict_policy": "route", + "strict_pass": true, + "selected_recipe": "address_movements_account_snapshot_v1", + "missing_required_filters": [], + "match_failure_stage": "none", + "match_failure_reason": null, + "rows_fetched": 2, + "rows_matched": 2, + "mcp_call_status": "matched_non_empty", + "limited_reason_category": null, + "llm_decomposition_applied": false, + "llm_decomposition_reason": "not_address_like", + "fallback_rule_hit": null, + "debug_payload": { + "trace_id": "address-4l6g-akwsc", + "prompt_version": "address_query_runtime_v1", + "schema_version": "address_query_runtime_v1", + "fallback_type": "none", + "route_summary": null, + "fragments": [], + "requirements_extracted": [], + "coverage_report": { + "requirements_total": 0, + "requirements_covered": 0, + "requirements_uncovered": [], + "requirements_partially_covered": [], + "clarification_needed_for": [], + "out_of_scope_requirements": [] + }, + "routes": [], + "retrieval_status": [], + "retrieval_results": [], + "answer_grounding_check": { + "status": "grounded", + "route_subject_match": true, + "missing_requirements": [], + "reasons": [ + "address_entity_detected", + "shape_not_detected", + "intent_not_supported_in_v1", + "intent_from_followup_context", + "as_of_date_from_followup_context", + "period_from_followup_context", + "address_followup_context_applied" + ], + "why_included_summary": [], + "selection_reason_summary": [] + }, + "dropped_intent_segments": [], + "detected_mode": "address_query", + "detected_mode_confidence": "medium", + "query_shape": "UNKNOWN", + "query_shape_confidence": "low", + "detected_intent": "account_balance_snapshot", + "detected_intent_confidence": "low", + "extracted_filters": { + "sort": "period_desc", + "limit": 20, + "account": "62.01", + "as_of_date": "2020-05-31", + "period_from": "2020-05-01", + "period_to": "2020-05-31" + }, + "missing_required_filters": [], + "selected_recipe": "address_movements_account_snapshot_v1", + "mcp_call_status_legacy": "matched_non_empty", + "account_scope_mode": "strict", + "account_scope_fallback_applied": false, + "anchor_type": "account", + "anchor_value_raw": "62.01", + "anchor_value_resolved": "62.01", + "resolver_confidence": "high", + "ambiguity_count": 0, + "match_failure_stage": "none", + "match_failure_reason": null, + "mcp_call_status": "matched_non_empty", + "rows_fetched": 2, + "raw_rows_received": 2, + "rows_after_account_scope": 2, + "rows_after_recipe_filter": 2, + "rows_materialized": 2, + "rows_matched": 2, + "raw_row_keys_sample": [ + "Период", + "Регистратор", + "СчетДт", + "СчетКт", + "Сумма", + "Period", + "Registrator", + "AccountDt", + "AccountKt", + "Amount" + ], + "materialization_drop_reason": "none", + "account_token_raw": "62.01", + "account_token_normalized": "62.1", + "account_scope_fields_checked": [ + "account_dt", + "account_kt", + "registrator", + "analytics" + ], + "account_scope_match_strategy": "account_code_regex_plus_alias_map_v1", + "account_scope_drop_reason": "rows_remaining_after_scope_filter", + "runtime_readiness": "LIVE_QUERYABLE_WITH_LIMITS", + "limited_reason_category": null, + "response_type": "FACTUAL_SUMMARY", + "execution_lane": "address_query", + "llm_decomposition_applied": false, + "llm_decomposition_attempted": false, + "llm_provider_used": "local", + "llm_decomposition_trace_id": null, + "llm_decomposition_effective_message": "а на ту же дату по 62.01", + "llm_decomposition_reason": "not_address_like", + "fallback_rule_hit": null, + "sanitized_user_message": "а на ту же дату по 62.01", + "tool_gate_decision": "run_address_lane", + "tool_gate_reason": "address_mode_classifier_detected", + "answer_structure_v11": null, + "investigation_state_snapshot": null, + "normalized": null, + "normalizer_output": null + }, + "error_code": null, + "error_message": null + }, + { + "index": 5, + "id": "F005", + "question": "раскрой остаток по 62.01 документами на ту же дату", + "session": "chain_docs_svk_a", + "session_id": "asst-2026-04-02_Address_Followup_Context_Chains_2026-04-02_13-47-Run1-chain_docs_svk_a", + "status_code": 200, + "ok": true, + "elapsed_ms": 6059, + "reply_type": "factual", + "trace_id": "address-ma_6yr_R3B", + "assistant_reply": "Собран drilldown документов, формирующих остаток по счету на указанную дату.\nДокументных строк отобрано: 2.\nСумма по отобранным движениям: 1530000.\n1. 2020-05-18T12:00:01Z | Реализация товаров и услуг 00000000002 от 18.05.2020 12:00:01 | 62.01 / 90.01.1 | 765000\n2. 2020-05-18T12:00:01Z | Реализация товаров и услуг 00000000002 от 18.05.2020 12:00:01 | 62.02 / 62.01 | 765000\nМожно уточнить выборку по контрагенту, договору или периоду.", + "assistant_reply_first_line": "Собран drilldown документов, формирующих остаток по счету на указанную дату.", + "expected_intent": "documents_forming_balance", + "actual_intent": "documents_forming_balance", + "intent_match": true, + "expected_mode": "address_query", + "actual_mode": "address_query", + "mode_match": true, + "expected_reply_type": null, + "reply_match": true, + "semantic_pass": true, + "route_pass": true, + "route_health": "ok_or_factual", + "strict_policy": "route", + "strict_pass": true, + "selected_recipe": "address_documents_forming_balance_v1", + "missing_required_filters": [], + "match_failure_stage": "none", + "match_failure_reason": null, + "rows_fetched": 2, + "rows_matched": 2, + "mcp_call_status": "matched_non_empty", + "limited_reason_category": null, + "llm_decomposition_applied": false, + "llm_decomposition_reason": "normalized_fragment_rejected_intent_conflict", + "fallback_rule_hit": null, + "debug_payload": { + "trace_id": "address-ma_6yr_R3B", + "prompt_version": "address_query_runtime_v1", + "schema_version": "address_query_runtime_v1", + "fallback_type": "none", + "route_summary": null, + "fragments": [], + "requirements_extracted": [], + "coverage_report": { + "requirements_total": 0, + "requirements_covered": 0, + "requirements_uncovered": [], + "requirements_partially_covered": [], + "clarification_needed_for": [], + "out_of_scope_requirements": [] + }, + "routes": [], + "retrieval_status": [], + "retrieval_results": [], + "answer_grounding_check": { + "status": "grounded", + "route_subject_match": true, + "missing_requirements": [], + "reasons": [ + "address_action_detected", + "address_entity_detected", + "drilldown_signal_detected", + "documents_forming_balance_signal_detected", + "as_of_date_from_followup_context", + "period_from_followup_context", + "address_followup_context_applied" + ], + "why_included_summary": [], + "selection_reason_summary": [] + }, + "dropped_intent_segments": [], + "detected_mode": "address_query", + "detected_mode_confidence": "high", + "query_shape": "DRILLDOWN_REQUEST", + "query_shape_confidence": "high", + "detected_intent": "documents_forming_balance", + "detected_intent_confidence": "high", + "extracted_filters": { + "sort": "period_desc", + "limit": 20, + "account": "62.01", + "as_of_date": "2020-05-31", + "period_from": "2020-05-01", + "period_to": "2020-05-31" + }, + "missing_required_filters": [], + "selected_recipe": "address_documents_forming_balance_v1", + "mcp_call_status_legacy": "matched_non_empty", + "account_scope_mode": "strict", + "account_scope_fallback_applied": false, + "anchor_type": "account", + "anchor_value_raw": "62.01", + "anchor_value_resolved": "62.01", + "resolver_confidence": "high", + "ambiguity_count": 0, + "match_failure_stage": "none", + "match_failure_reason": null, + "mcp_call_status": "matched_non_empty", + "rows_fetched": 2, + "raw_rows_received": 2, + "rows_after_account_scope": 2, + "rows_after_recipe_filter": 2, + "rows_materialized": 2, + "rows_matched": 2, + "raw_row_keys_sample": [ + "Период", + "Регистратор", + "СчетДт", + "СчетКт", + "Сумма", + "Period", + "Registrator", + "AccountDt", + "AccountKt", + "Amount" + ], + "materialization_drop_reason": "none", + "account_token_raw": "62.01", + "account_token_normalized": "62.1", + "account_scope_fields_checked": [ + "account_dt", + "account_kt", + "registrator", + "analytics" + ], + "account_scope_match_strategy": "account_code_regex_plus_alias_map_v1", + "account_scope_drop_reason": "rows_remaining_after_scope_filter", + "runtime_readiness": "LIVE_QUERYABLE_WITH_LIMITS", + "limited_reason_category": null, + "response_type": "FACTUAL_LIST", + "execution_lane": "address_query", + "llm_decomposition_applied": false, + "llm_decomposition_attempted": true, + "llm_provider_used": "local", + "llm_decomposition_trace_id": "YNncup7pWPR12R", + "llm_decomposition_effective_message": "раскрой остаток по 62.01 документами на ту же дату", + "llm_decomposition_reason": "normalized_fragment_rejected_intent_conflict", + "fallback_rule_hit": null, + "sanitized_user_message": "раскрой остаток по 62.01 документами на ту же дату", + "tool_gate_decision": "run_address_lane", + "tool_gate_reason": "address_mode_classifier_detected", + "answer_structure_v11": null, + "investigation_state_snapshot": null, + "normalized": null, + "normalizer_output": { + "trace_id": "YNncup7pWPR12R", + "prompt_version": "normalizer_v2_0_2", + "applied": false, + "effective_message": "раскрой остаток по 62.01 документами на ту же дату" + } + }, + "error_code": null, + "error_message": null + }, + { + "index": 6, + "id": "F006", + "question": "Покажи банковские операции по СВК за 2020", + "session": "chain_bank_svk_b", + "session_id": "asst-2026-04-02_Address_Followup_Context_Chains_2026-04-02_13-47-Run1-chain_bank_svk_b", + "status_code": 200, + "ok": true, + "elapsed_ms": 8400, + "reply_type": "factual", + "trace_id": "address-HhriHfcL_l", + "assistant_reply": "Точный якорь не подтвердился в текущем окне live-данных; показаны ближайшие доступные документы/операции по выбранному типу.\nСобран список банковских операций по контрагенту (live address lane).\nСтрок отобрано: 5.\n1. 2020-12-30T12:00:00Z | Поступление на расчетный счет 00000000044 от 30.12.2020 12:00:00 | 0 / 0 | 3248300 | аналитика: Группа\n2. 2020-12-16T16:20:53Z | Поступление на расчетный счет 00000000043 от 16.12.2020 16:20:53 | 0 / 0 | 216600 | аналитика: Группа\n3. 2020-12-16T16:20:52Z | Списание с расчетного счета 00000000294 от 16.12.2020 16:20:52 | 0 / 0 | 3849.26 | аналитика: УФК по г. Москве (для ГУ - Отделения ПФР по г. Москве и МО)\n4. 2020-12-16T16:20:51Z | Списание с расчетного счета 00000000293 от 16.12.2020 16:20:51 | 0 / 0 | 60 | аналитика: СБЕРБАНК, ПАО\n5. 2020-12-14T12:00:00Z | Поступление на расчетный счет 00000000042 от 14.12.2020 12:00:00 | 0 / 0 | 200000 | аналитика: Группа", + "assistant_reply_first_line": "Точный якорь не подтвердился в текущем окне live-данных; показаны ближайшие доступные документы/операции по выбранному типу.", + "expected_intent": "bank_operations_by_counterparty", + "actual_intent": "bank_operations_by_counterparty", + "intent_match": true, + "expected_mode": "address_query", + "actual_mode": "address_query", + "mode_match": true, + "expected_reply_type": null, + "reply_match": true, + "semantic_pass": true, + "route_pass": true, + "route_health": "ok_or_factual", + "strict_policy": "route", + "strict_pass": true, + "selected_recipe": "address_bank_operations_by_counterparty_v1", + "missing_required_filters": [], + "match_failure_stage": "materialized_but_not_anchor_matched", + "match_failure_reason": "counterparty_anchor_not_matched_in_materialized_rows", + "rows_fetched": 20, + "rows_matched": 5, + "mcp_call_status": "matched_non_empty", + "limited_reason_category": null, + "llm_decomposition_applied": true, + "llm_decomposition_reason": "normalized_fragment_applied", + "fallback_rule_hit": null, + "debug_payload": { + "trace_id": "address-HhriHfcL_l", + "prompt_version": "address_query_runtime_v1", + "schema_version": "address_query_runtime_v1", + "fallback_type": "none", + "route_summary": null, + "fragments": [], + "requirements_extracted": [], + "coverage_report": { + "requirements_total": 0, + "requirements_covered": 0, + "requirements_uncovered": [], + "requirements_partially_covered": [], + "clarification_needed_for": [], + "out_of_scope_requirements": [] + }, + "routes": [], + "retrieval_status": [], + "retrieval_results": [], + "answer_grounding_check": { + "status": "grounded", + "route_subject_match": true, + "missing_requirements": [], + "reasons": [ + "address_action_detected", + "address_entity_detected", + "shape_not_detected", + "bank_ops_by_counterparty_signal_detected", + "anchor_not_matched_fallback_rows" + ], + "why_included_summary": [], + "selection_reason_summary": [] + }, + "dropped_intent_segments": [], + "detected_mode": "address_query", + "detected_mode_confidence": "high", + "query_shape": "UNKNOWN", + "query_shape_confidence": "low", + "detected_intent": "bank_operations_by_counterparty", + "detected_intent_confidence": "medium", + "extracted_filters": { + "sort": "period_desc", + "limit": 20, + "account": "51", + "counterparty": "счету", + "period_from": "2020-01-01", + "period_to": "2020-12-31" + }, + "missing_required_filters": [], + "selected_recipe": "address_bank_operations_by_counterparty_v1", + "mcp_call_status_legacy": "matched_non_empty", + "account_scope_mode": "preferred", + "account_scope_fallback_applied": false, + "anchor_type": "counterparty", + "anchor_value_raw": "счету", + "anchor_value_resolved": "счету", + "resolver_confidence": "medium", + "ambiguity_count": 0, + "match_failure_stage": "materialized_but_not_anchor_matched", + "match_failure_reason": "counterparty_anchor_not_matched_in_materialized_rows", + "mcp_call_status": "matched_non_empty", + "rows_fetched": 20, + "raw_rows_received": 20, + "rows_after_account_scope": 5, + "rows_after_recipe_filter": 0, + "rows_materialized": 5, + "rows_matched": 5, + "raw_row_keys_sample": [ + "Период", + "Регистратор", + "СчетДт", + "СчетКт", + "Сумма", + "Контрагент", + "Period", + "Registrator", + "Amount" + ], + "materialization_drop_reason": "none", + "account_token_raw": "51", + "account_token_normalized": "51", + "account_scope_fields_checked": [ + "account_dt", + "account_kt", + "registrator", + "analytics" + ], + "account_scope_match_strategy": "account_code_regex_plus_alias_map_v1", + "account_scope_drop_reason": "not_applicable", + "runtime_readiness": "LIVE_QUERYABLE_WITH_LIMITS", + "limited_reason_category": null, + "response_type": "FACTUAL_LIST", + "execution_lane": "address_query", + "llm_decomposition_applied": true, + "llm_decomposition_attempted": true, + "llm_provider_used": "local", + "llm_decomposition_trace_id": "ey33Wo532pKXOm", + "llm_decomposition_effective_message": "Показать банковские операции по счету 51 (СВК) за период 2020 год.", + "llm_decomposition_reason": "normalized_fragment_applied", + "fallback_rule_hit": null, + "sanitized_user_message": "покажи банковские операции по свк за 2020", + "tool_gate_decision": "run_address_lane", + "tool_gate_reason": "address_mode_classifier_detected", + "answer_structure_v11": null, + "investigation_state_snapshot": null, + "normalized": null, + "normalizer_output": { + "trace_id": "ey33Wo532pKXOm", + "prompt_version": "normalizer_v2_0_2", + "applied": true, + "effective_message": "Показать банковские операции по счету 51 (СВК) за период 2020 год." + } + }, + "error_code": null, + "error_message": null + }, + { + "index": 7, + "id": "F007", + "question": "а теперь только ноябрь 2020", + "session": "chain_bank_svk_b", + "session_id": "asst-2026-04-02_Address_Followup_Context_Chains_2026-04-02_13-47-Run1-chain_bank_svk_b", + "status_code": 200, + "ok": true, + "elapsed_ms": 2963, + "reply_type": "factual", + "trace_id": "address-e0qiHwJfXw", + "assistant_reply": "Точный якорь не подтвердился в текущем окне live-данных; показаны ближайшие доступные документы/операции по выбранному типу.\nСобран список банковских операций по контрагенту (live address lane).\nСтрок отобрано: 5.\n1. 2020-11-30T12:00:07Z | Поступление на расчетный счет 00000000041 от 30.11.2020 12:00:07 | 0 / 0 | 38900 | аналитика: Группа\n3. 2020-11-19T12:00:04Z | Поступление на расчетный счет 00000000039 от 19.11.2020 12:00:04 | 0 / 0 | 3320600 | аналитика: Группа\n4. 2020-11-18T12:00:05Z | Поступление на расчетный счет 00000000038 от 18.11.2020 12:00:05 | 0 / 0 | 745300 | аналитика: Группа\n5. 2020-11-18T12:00:04Z | Поступление на расчетный счет 00000000037 от 18.11.2020 12:00:04 | 0 / 0 | 320000 | аналитика: Группа", + "assistant_reply_first_line": "Точный якорь не подтвердился в текущем окне live-данных; показаны ближайшие доступные документы/операции по выбранному типу.", + "expected_intent": "bank_operations_by_counterparty", + "actual_intent": "bank_operations_by_counterparty", + "intent_match": true, + "expected_mode": "address_query", + "actual_mode": "address_query", + "mode_match": true, + "expected_reply_type": null, + "reply_match": true, + "semantic_pass": true, + "route_pass": true, + "route_health": "ok_or_factual", + "strict_policy": "route", + "strict_pass": true, + "selected_recipe": "address_bank_operations_by_counterparty_v1", + "missing_required_filters": [], + "match_failure_stage": "materialized_but_not_anchor_matched", + "match_failure_reason": "counterparty_anchor_not_matched_in_materialized_rows", + "rows_fetched": 20, + "rows_matched": 5, + "mcp_call_status": "matched_non_empty", + "limited_reason_category": null, + "llm_decomposition_applied": false, + "llm_decomposition_reason": "not_address_like", + "fallback_rule_hit": null, + "debug_payload": { + "trace_id": "address-e0qiHwJfXw", + "prompt_version": "address_query_runtime_v1", + "schema_version": "address_query_runtime_v1", + "fallback_type": "none", + "route_summary": null, + "fragments": [], + "requirements_extracted": [], + "coverage_report": { + "requirements_total": 0, + "requirements_covered": 0, + "requirements_uncovered": [], + "requirements_partially_covered": [], + "clarification_needed_for": [], + "out_of_scope_requirements": [] + }, + "routes": [], + "retrieval_status": [], + "retrieval_results": [], + "answer_grounding_check": { + "status": "grounded", + "route_subject_match": true, + "missing_requirements": [], + "reasons": [ + "no_address_or_deep_signal", + "address_mode_from_followup_context", + "shape_not_detected", + "intent_not_supported_in_v1", + "intent_from_followup_context", + "counterparty_from_followup_context", + "address_followup_context_applied", + "anchor_not_matched_fallback_rows" + ], + "why_included_summary": [], + "selection_reason_summary": [] + }, + "dropped_intent_segments": [], + "detected_mode": "address_query", + "detected_mode_confidence": "medium", + "query_shape": "UNKNOWN", + "query_shape_confidence": "low", + "detected_intent": "bank_operations_by_counterparty", + "detected_intent_confidence": "low", + "extracted_filters": { + "sort": "period_desc", + "limit": 20, + "period_from": "2020-11-01", + "period_to": "2020-11-30", + "counterparty": "счету" + }, + "missing_required_filters": [], + "selected_recipe": "address_bank_operations_by_counterparty_v1", + "mcp_call_status_legacy": "matched_non_empty", + "account_scope_mode": "preferred", + "account_scope_fallback_applied": false, + "anchor_type": "counterparty", + "anchor_value_raw": "счету", + "anchor_value_resolved": "счету", + "resolver_confidence": "medium", + "ambiguity_count": 0, + "match_failure_stage": "materialized_but_not_anchor_matched", + "match_failure_reason": "counterparty_anchor_not_matched_in_materialized_rows", + "mcp_call_status": "matched_non_empty", + "rows_fetched": 20, + "raw_rows_received": 20, + "rows_after_account_scope": 5, + "rows_after_recipe_filter": 0, + "rows_materialized": 5, + "rows_matched": 5, + "raw_row_keys_sample": [ + "Период", + "Регистратор", + "СчетДт", + "СчетКт", + "Сумма", + "Контрагент", + "Period", + "Registrator", + "Amount" + ], + "materialization_drop_reason": "none", + "account_token_raw": null, + "account_token_normalized": null, + "account_scope_fields_checked": [ + "account_dt", + "account_kt", + "registrator", + "analytics" + ], + "account_scope_match_strategy": "account_code_regex_plus_alias_map_v1", + "account_scope_drop_reason": "not_applicable", + "runtime_readiness": "LIVE_QUERYABLE_WITH_LIMITS", + "limited_reason_category": null, + "response_type": "FACTUAL_LIST", + "execution_lane": "address_query", + "llm_decomposition_applied": false, + "llm_decomposition_attempted": false, + "llm_provider_used": "local", + "llm_decomposition_trace_id": null, + "llm_decomposition_effective_message": "а теперь только ноябрь 2020", + "llm_decomposition_reason": "not_address_like", + "fallback_rule_hit": null, + "sanitized_user_message": "а теперь только ноябрь 2020", + "tool_gate_decision": "run_address_lane", + "tool_gate_reason": "followup_context_detected", + "answer_structure_v11": null, + "investigation_state_snapshot": null, + "normalized": null, + "normalizer_output": null + }, + "error_code": null, + "error_message": null + }, + { + "index": 8, + "id": "F008", + "question": "а теперь документы по нему", + "session": "chain_bank_svk_b", + "session_id": "asst-2026-04-02_Address_Followup_Context_Chains_2026-04-02_13-47-Run1-chain_bank_svk_b", + "status_code": 200, + "ok": true, + "elapsed_ms": 7138, + "reply_type": "factual", + "trace_id": "address-pK9Vjq-LDY", + "assistant_reply": "Точный якорь не подтвердился в текущем окне live-данных; показаны ближайшие доступные документы/операции по выбранному типу.\nСобран список документов по контрагенту (live address lane).\nСтрок отобрано: 5.\n1. 2020-11-30T12:00:07Z | Поступление на расчетный счет 00000000041 от 30.11.2020 12:00:07 | 0 / 0 | 38900 | аналитика: Группа\n3. 2020-11-19T12:00:04Z | Поступление на расчетный счет 00000000039 от 19.11.2020 12:00:04 | 0 / 0 | 3320600 | аналитика: Группа\n4. 2020-11-18T12:00:05Z | Поступление на расчетный счет 00000000038 от 18.11.2020 12:00:05 | 0 / 0 | 745300 | аналитика: Группа\n5. 2020-11-18T12:00:04Z | Поступление на расчетный счет 00000000037 от 18.11.2020 12:00:04 | 0 / 0 | 320000 | аналитика: Группа", + "assistant_reply_first_line": "Точный якорь не подтвердился в текущем окне live-данных; показаны ближайшие доступные документы/операции по выбранному типу.", + "expected_intent": "list_documents_by_counterparty", + "actual_intent": "list_documents_by_counterparty", + "intent_match": true, + "expected_mode": "address_query", + "actual_mode": "address_query", + "mode_match": true, + "expected_reply_type": null, + "reply_match": true, + "semantic_pass": true, + "route_pass": true, + "route_health": "ok_or_factual", + "strict_policy": "route", + "strict_pass": true, + "selected_recipe": "address_documents_by_counterparty_v1", + "missing_required_filters": [], + "match_failure_stage": "materialized_but_not_anchor_matched", + "match_failure_reason": "counterparty_anchor_not_matched_in_materialized_rows", + "rows_fetched": 20, + "rows_matched": 5, + "mcp_call_status": "matched_non_empty", + "limited_reason_category": null, + "llm_decomposition_applied": true, + "llm_decomposition_reason": "normalized_fragment_applied", + "fallback_rule_hit": null, + "debug_payload": { + "trace_id": "address-pK9Vjq-LDY", + "prompt_version": "address_query_runtime_v1", + "schema_version": "address_query_runtime_v1", + "fallback_type": "none", + "route_summary": null, + "fragments": [], + "requirements_extracted": [], + "coverage_report": { + "requirements_total": 0, + "requirements_covered": 0, + "requirements_uncovered": [], + "requirements_partially_covered": [], + "clarification_needed_for": [], + "out_of_scope_requirements": [] + }, + "routes": [], + "retrieval_status": [], + "retrieval_results": [], + "answer_grounding_check": { + "status": "grounded", + "route_subject_match": true, + "missing_requirements": [], + "reasons": [ + "loose_by_anchor_detected", + "document_list_signal_detected", + "documents_by_counterparty_signal_detected", + "period_from_followup_context", + "address_followup_context_applied", + "anchor_not_matched_fallback_rows" + ], + "why_included_summary": [], + "selection_reason_summary": [] + }, + "dropped_intent_segments": [], + "detected_mode": "address_query", + "detected_mode_confidence": "medium", + "query_shape": "DOCUMENT_LIST", + "query_shape_confidence": "medium", + "detected_intent": "list_documents_by_counterparty", + "detected_intent_confidence": "medium", + "extracted_filters": { + "sort": "period_desc", + "limit": 20, + "counterparty": "неуказанному", + "period_from": "2020-11-01", + "period_to": "2020-11-30" + }, + "missing_required_filters": [], + "selected_recipe": "address_documents_by_counterparty_v1", + "mcp_call_status_legacy": "matched_non_empty", + "account_scope_mode": "preferred", + "account_scope_fallback_applied": false, + "anchor_type": "counterparty", + "anchor_value_raw": "неуказанному", + "anchor_value_resolved": "неуказанному", + "resolver_confidence": "medium", + "ambiguity_count": 0, + "match_failure_stage": "materialized_but_not_anchor_matched", + "match_failure_reason": "counterparty_anchor_not_matched_in_materialized_rows", + "mcp_call_status": "matched_non_empty", + "rows_fetched": 20, + "raw_rows_received": 20, + "rows_after_account_scope": 5, + "rows_after_recipe_filter": 0, + "rows_materialized": 5, + "rows_matched": 5, + "raw_row_keys_sample": [ + "Период", + "Регистратор", + "СчетДт", + "СчетКт", + "Сумма", + "Контрагент", + "Period", + "Registrator", + "Amount" + ], + "materialization_drop_reason": "none", + "account_token_raw": null, + "account_token_normalized": null, + "account_scope_fields_checked": [ + "account_dt", + "account_kt", + "registrator", + "analytics" + ], + "account_scope_match_strategy": "account_code_regex_plus_alias_map_v1", + "account_scope_drop_reason": "not_applicable", + "runtime_readiness": "LIVE_QUERYABLE_WITH_LIMITS", + "limited_reason_category": null, + "response_type": "FACTUAL_LIST", + "execution_lane": "address_query", + "llm_decomposition_applied": true, + "llm_decomposition_attempted": true, + "llm_provider_used": "local", + "llm_decomposition_trace_id": "Vj0nWv0a6jjb5x", + "llm_decomposition_effective_message": "документы по неуказанному объекту", + "llm_decomposition_reason": "normalized_fragment_applied", + "fallback_rule_hit": null, + "sanitized_user_message": "а теперь документы по нему", + "tool_gate_decision": "run_address_lane", + "tool_gate_reason": "address_mode_classifier_detected", + "answer_structure_v11": null, + "investigation_state_snapshot": null, + "normalized": null, + "normalizer_output": { + "trace_id": "Vj0nWv0a6jjb5x", + "prompt_version": "normalizer_v2_0_2", + "applied": true, + "effective_message": "документы по неуказанному объекту" + } + }, + "error_code": null, + "error_message": null + }, + { + "index": 9, + "id": "F009", + "question": "и остаток по 51 на ту же дату", + "session": "chain_bank_svk_b", + "session_id": "asst-2026-04-02_Address_Followup_Context_Chains_2026-04-02_13-47-Run1-chain_bank_svk_b", + "status_code": 200, + "ok": true, + "elapsed_ms": 4945, + "reply_type": "factual", + "trace_id": "address-qkNhPxrheG", + "assistant_reply": "Адресный срез по счету собран (по движениям live MCP).\nСтрок отобрано: 200.\nСумма по отобранным движениям: 28075894.400000002.\n1. 2022-10-03T12:00:00Z | Списание с расчетного счета 00000000018 от 03.10.2022 12:00:00 | 76.03 / 51 | 355.2\n2. 2022-08-10T12:00:00Z | Списание с расчетного счета 00000000017 от 10.08.2022 12:00:00 | 91.02 / 51 | 990\n3. 2022-07-28T12:00:00Z | Списание с расчетного счета 00000000016 от 28.07.2022 12:00:00 | 69.11 / 51 | 1000\n4. 2022-07-11T12:00:00Z | Списание с расчетного счета 00000000014 от 11.07.2022 12:00:00 | 76.05 / 51 | 280", + "assistant_reply_first_line": "Адресный срез по счету собран (по движениям live MCP).", + "expected_intent": "account_balance_snapshot", + "actual_intent": "account_balance_snapshot", + "intent_match": true, + "expected_mode": "address_query", + "actual_mode": "address_query", + "mode_match": true, + "expected_reply_type": null, + "reply_match": true, + "semantic_pass": true, + "route_pass": true, + "route_health": "ok_or_factual", + "strict_policy": "route", + "strict_pass": true, + "selected_recipe": "address_movements_account_snapshot_v1", + "missing_required_filters": [], + "match_failure_stage": "none", + "match_failure_reason": null, + "rows_fetched": 200, + "rows_matched": 200, + "mcp_call_status": "matched_non_empty", + "limited_reason_category": null, + "llm_decomposition_applied": true, + "llm_decomposition_reason": "normalized_fragment_applied", + "fallback_rule_hit": null, + "debug_payload": { + "trace_id": "address-qkNhPxrheG", + "prompt_version": "address_query_runtime_v1", + "schema_version": "address_query_runtime_v1", + "fallback_type": "none", + "route_summary": null, + "fragments": [], + "requirements_extracted": [], + "coverage_report": { + "requirements_total": 0, + "requirements_covered": 0, + "requirements_uncovered": [], + "requirements_partially_covered": [], + "clarification_needed_for": [], + "out_of_scope_requirements": [] + }, + "routes": [], + "retrieval_status": [], + "retrieval_results": [], + "answer_grounding_check": { + "status": "grounded", + "route_subject_match": true, + "missing_requirements": [], + "reasons": [ + "address_action_detected", + "address_entity_detected", + "aggregate_signal_detected", + "account_balance_signal_detected" + ], + "why_included_summary": [], + "selection_reason_summary": [] + }, + "dropped_intent_segments": [], + "detected_mode": "address_query", + "detected_mode_confidence": "high", + "query_shape": "AGGREGATE_LOOKUP", + "query_shape_confidence": "high", + "detected_intent": "account_balance_snapshot", + "detected_intent_confidence": "high", + "extracted_filters": { + "sort": "period_desc", + "limit": 20, + "account": "51", + "as_of_date": "2026-04-02" + }, + "missing_required_filters": [], + "selected_recipe": "address_movements_account_snapshot_v1", + "mcp_call_status_legacy": "matched_non_empty", + "account_scope_mode": "strict", + "account_scope_fallback_applied": false, + "anchor_type": "account", + "anchor_value_raw": "51", + "anchor_value_resolved": "51", + "resolver_confidence": "high", + "ambiguity_count": 0, + "match_failure_stage": "none", + "match_failure_reason": null, + "mcp_call_status": "matched_non_empty", + "rows_fetched": 200, + "raw_rows_received": 200, + "rows_after_account_scope": 200, + "rows_after_recipe_filter": 200, + "rows_materialized": 200, + "rows_matched": 200, + "raw_row_keys_sample": [ + "Период", + "Регистратор", + "СчетДт", + "СчетКт", + "Сумма", + "Period", + "Registrator", + "AccountDt", + "AccountKt", + "Amount" + ], + "materialization_drop_reason": "none", + "account_token_raw": "51", + "account_token_normalized": "51", + "account_scope_fields_checked": [ + "account_dt", + "account_kt", + "registrator", + "analytics" + ], + "account_scope_match_strategy": "account_code_regex_plus_alias_map_v1", + "account_scope_drop_reason": "rows_remaining_after_scope_filter", + "runtime_readiness": "LIVE_QUERYABLE_WITH_LIMITS", + "limited_reason_category": null, + "response_type": "FACTUAL_SUMMARY", + "execution_lane": "address_query", + "llm_decomposition_applied": true, + "llm_decomposition_attempted": true, + "llm_provider_used": "local", + "llm_decomposition_trace_id": "rNhN8OfqtlRFkp", + "llm_decomposition_effective_message": "остаток по счету 51 на текущую дату", + "llm_decomposition_reason": "normalized_fragment_applied", + "fallback_rule_hit": null, + "sanitized_user_message": "и остаток по 51 на ту же дату", + "tool_gate_decision": "run_address_lane", + "tool_gate_reason": "address_mode_classifier_detected", + "answer_structure_v11": null, + "investigation_state_snapshot": null, + "normalized": null, + "normalizer_output": { + "trace_id": "rNhN8OfqtlRFkp", + "prompt_version": "normalizer_v2_0_2", + "applied": true, + "effective_message": "остаток по счету 51 на текущую дату" + } + }, + "error_code": null, + "error_message": null + }, + { + "index": 10, + "id": "F010", + "question": "а теперь только май 2020", + "session": "chain_bank_svk_b", + "session_id": "asst-2026-04-02_Address_Followup_Context_Chains_2026-04-02_13-47-Run1-chain_bank_svk_b", + "status_code": 200, + "ok": true, + "elapsed_ms": 978, + "reply_type": "factual", + "trace_id": "address-zsxRUBmzWm", + "assistant_reply": "Адресный срез по счету собран (по движениям live MCP).\nСтрок отобрано: 24.\nСумма по отобранным движениям: 2234531.1100000003.\n1. 2020-05-29T12:00:02Z | Списание с расчетного счета 00000000151 от 29.05.2020 12:00:02 | 91.02 / 51 | 60\n2. 2020-05-28T20:17:50Z | Списание с расчетного счета 00000000150 от 28.05.2020 20:17:50 | 70 / 51 | 50\n3. 2020-05-28T20:17:24Z | Списание с расчетного счета 00000000149 от 28.05.2020 20:17:24 | 91.02 / 51 | 35\n4. 2020-05-22T10:14:43Z | Списание с расчетного счета 00000000148 от 22.05.2020 10:14:43 | 60.02 / 51 | 142299", + "assistant_reply_first_line": "Адресный срез по счету собран (по движениям live MCP).", + "expected_intent": "account_balance_snapshot", + "actual_intent": "account_balance_snapshot", + "intent_match": true, + "expected_mode": "address_query", + "actual_mode": "address_query", + "mode_match": true, + "expected_reply_type": null, + "reply_match": true, + "semantic_pass": true, + "route_pass": true, + "route_health": "ok_or_factual", + "strict_policy": "route", + "strict_pass": true, + "selected_recipe": "address_movements_account_snapshot_v1", + "missing_required_filters": [], + "match_failure_stage": "none", + "match_failure_reason": null, + "rows_fetched": 24, + "rows_matched": 24, + "mcp_call_status": "matched_non_empty", + "limited_reason_category": null, + "llm_decomposition_applied": false, + "llm_decomposition_reason": "not_address_like", + "fallback_rule_hit": null, + "debug_payload": { + "trace_id": "address-zsxRUBmzWm", + "prompt_version": "address_query_runtime_v1", + "schema_version": "address_query_runtime_v1", + "fallback_type": "none", + "route_summary": null, + "fragments": [], + "requirements_extracted": [], + "coverage_report": { + "requirements_total": 0, + "requirements_covered": 0, + "requirements_uncovered": [], + "requirements_partially_covered": [], + "clarification_needed_for": [], + "out_of_scope_requirements": [] + }, + "routes": [], + "retrieval_status": [], + "retrieval_results": [], + "answer_grounding_check": { + "status": "grounded", + "route_subject_match": true, + "missing_requirements": [], + "reasons": [ + "no_address_or_deep_signal", + "address_mode_from_followup_context", + "shape_not_detected", + "intent_not_supported_in_v1", + "intent_from_followup_context", + "account_from_followup_context", + "address_followup_context_applied" + ], + "why_included_summary": [], + "selection_reason_summary": [] + }, + "dropped_intent_segments": [], + "detected_mode": "address_query", + "detected_mode_confidence": "medium", + "query_shape": "UNKNOWN", + "query_shape_confidence": "low", + "detected_intent": "account_balance_snapshot", + "detected_intent_confidence": "low", + "extracted_filters": { + "sort": "period_desc", + "limit": 20, + "period_from": "2020-05-01", + "period_to": "2020-05-31", + "as_of_date": "2020-05-31", + "account": "51" + }, + "missing_required_filters": [], + "selected_recipe": "address_movements_account_snapshot_v1", + "mcp_call_status_legacy": "matched_non_empty", + "account_scope_mode": "strict", + "account_scope_fallback_applied": false, + "anchor_type": "account", + "anchor_value_raw": "51", + "anchor_value_resolved": "51", + "resolver_confidence": "high", + "ambiguity_count": 0, + "match_failure_stage": "none", + "match_failure_reason": null, + "mcp_call_status": "matched_non_empty", + "rows_fetched": 24, + "raw_rows_received": 24, + "rows_after_account_scope": 24, + "rows_after_recipe_filter": 24, + "rows_materialized": 24, + "rows_matched": 24, + "raw_row_keys_sample": [ + "Период", + "Регистратор", + "СчетДт", + "СчетКт", + "Сумма", + "Period", + "Registrator", + "AccountDt", + "AccountKt", + "Amount" + ], + "materialization_drop_reason": "none", + "account_token_raw": "51", + "account_token_normalized": "51", + "account_scope_fields_checked": [ + "account_dt", + "account_kt", + "registrator", + "analytics" + ], + "account_scope_match_strategy": "account_code_regex_plus_alias_map_v1", + "account_scope_drop_reason": "rows_remaining_after_scope_filter", + "runtime_readiness": "LIVE_QUERYABLE_WITH_LIMITS", + "limited_reason_category": null, + "response_type": "FACTUAL_SUMMARY", + "execution_lane": "address_query", + "llm_decomposition_applied": false, + "llm_decomposition_attempted": false, + "llm_provider_used": "local", + "llm_decomposition_trace_id": null, + "llm_decomposition_effective_message": "а теперь только май 2020", + "llm_decomposition_reason": "not_address_like", + "fallback_rule_hit": null, + "sanitized_user_message": "а теперь только май 2020", + "tool_gate_decision": "run_address_lane", + "tool_gate_reason": "followup_context_detected", + "answer_structure_v11": null, + "investigation_state_snapshot": null, + "normalized": null, + "normalizer_output": null + }, + "error_code": null, + "error_message": null + }, + { + "index": 11, + "id": "F011", + "question": "Покажи сальдо по счету 60 на 2020-12-31", + "session": "chain_balance_c", + "session_id": "asst-2026-04-02_Address_Followup_Context_Chains_2026-04-02_13-47-Run1-chain_balance_c", + "status_code": 200, + "ok": true, + "elapsed_ms": 4997, + "reply_type": "partial_coverage", + "trace_id": "address-x9wtatJUb_", + "assistant_reply": "В live-данных по текущему фильтру записи не найдены.\nПричина: по выбранным фильтрам в live-выборке нет строк.\nЧто нужно уточнить: уточните период, контрагента, договор или снимите часть фильтров.", + "assistant_reply_first_line": "В live-данных по текущему фильтру записи не найдены.", + "expected_intent": "account_balance_snapshot", + "actual_intent": "account_balance_snapshot", + "intent_match": true, + "expected_mode": "address_query", + "actual_mode": "address_query", + "mode_match": true, + "expected_reply_type": null, + "reply_match": true, + "semantic_pass": true, + "route_pass": true, + "route_health": "partial_non_blocking", + "strict_policy": "route", + "strict_pass": true, + "selected_recipe": "address_movements_account_snapshot_v1", + "missing_required_filters": [], + "match_failure_stage": "none", + "match_failure_reason": null, + "rows_fetched": 0, + "rows_matched": 0, + "mcp_call_status": "no_raw_rows", + "limited_reason_category": "empty_match", + "llm_decomposition_applied": true, + "llm_decomposition_reason": "normalized_fragment_applied", + "fallback_rule_hit": null, + "debug_payload": { + "trace_id": "address-x9wtatJUb_", + "prompt_version": "address_query_runtime_v1", + "schema_version": "address_query_runtime_v1", + "fallback_type": "partial", + "route_summary": null, + "fragments": [], + "requirements_extracted": [], + "coverage_report": { + "requirements_total": 0, + "requirements_covered": 0, + "requirements_uncovered": [], + "requirements_partially_covered": [], + "clarification_needed_for": [], + "out_of_scope_requirements": [] + }, + "routes": [], + "retrieval_status": [], + "retrieval_results": [], + "answer_grounding_check": { + "status": "partial", + "route_subject_match": true, + "missing_requirements": [], + "reasons": [ + "address_action_detected", + "address_entity_detected", + "aggregate_signal_detected", + "account_balance_signal_detected" + ], + "why_included_summary": [], + "selection_reason_summary": [] + }, + "dropped_intent_segments": [], + "detected_mode": "address_query", + "detected_mode_confidence": "high", + "query_shape": "AGGREGATE_LOOKUP", + "query_shape_confidence": "high", + "detected_intent": "account_balance_snapshot", + "detected_intent_confidence": "high", + "extracted_filters": { + "sort": "period_desc", + "limit": 20, + "account": "60", + "period_from": "2020-12-01", + "period_to": "2020-12-31", + "as_of_date": "2020-12-31" + }, + "missing_required_filters": [], + "selected_recipe": "address_movements_account_snapshot_v1", + "mcp_call_status_legacy": "no_raw_rows", + "account_scope_mode": "strict", + "account_scope_fallback_applied": false, + "anchor_type": "account", + "anchor_value_raw": "60", + "anchor_value_resolved": "60", + "resolver_confidence": "high", + "ambiguity_count": 0, + "match_failure_stage": "none", + "match_failure_reason": null, + "mcp_call_status": "no_raw_rows", + "rows_fetched": 0, + "raw_rows_received": 0, + "rows_after_account_scope": 0, + "rows_after_recipe_filter": 0, + "rows_materialized": 0, + "rows_matched": 0, + "raw_row_keys_sample": [], + "materialization_drop_reason": "none", + "account_token_raw": "60", + "account_token_normalized": "60", + "account_scope_fields_checked": [ + "account_dt", + "account_kt", + "registrator", + "analytics" + ], + "account_scope_match_strategy": "account_code_regex_plus_alias_map_v1", + "account_scope_drop_reason": "rows_remaining_after_scope_filter", + "runtime_readiness": "LIVE_QUERYABLE_WITH_LIMITS", + "limited_reason_category": "empty_match", + "response_type": "LIMITED_WITH_REASON", + "execution_lane": "address_query", + "llm_decomposition_applied": true, + "llm_decomposition_attempted": true, + "llm_provider_used": "local", + "llm_decomposition_trace_id": "K_NwcVXa2Z4dmQ", + "llm_decomposition_effective_message": "Показать сальдо по счету 60 на конец декабря 2020 года (2020-12-31)", + "llm_decomposition_reason": "normalized_fragment_applied", + "fallback_rule_hit": null, + "sanitized_user_message": "покажи сальдо по счету 60 на 2020-12-31", + "tool_gate_decision": "run_address_lane", + "tool_gate_reason": "address_mode_classifier_detected", + "answer_structure_v11": null, + "investigation_state_snapshot": null, + "normalized": null, + "normalizer_output": { + "trace_id": "K_NwcVXa2Z4dmQ", + "prompt_version": "normalizer_v2_0_2", + "applied": true, + "effective_message": "Показать сальдо по счету 60 на конец декабря 2020 года (2020-12-31)" + } + }, + "error_code": null, + "error_message": null + }, + { + "index": 12, + "id": "F012", + "question": "а теперь только май 2020", + "session": "chain_balance_c", + "session_id": "asst-2026-04-02_Address_Followup_Context_Chains_2026-04-02_13-47-Run1-chain_balance_c", + "status_code": 200, + "ok": true, + "elapsed_ms": 1118, + "reply_type": "factual", + "trace_id": "address-IXWN2zjtzB", + "assistant_reply": "Адресный срез по счету собран (по движениям live MCP).\nСтрок отобрано: 6.\nСумма по отобранным движениям: 849499.\n1. 2020-05-22T10:14:43Z | Списание с расчетного счета 00000000148 от 22.05.2020 10:14:43 | 60.02 / 51 | 142299\n2. 2020-05-22T10:12:50Z | Списание с расчетного счета 00000000147 от 22.05.2020 10:12:50 | 60.01 / 51 | 75367\n3. 2020-05-22T10:12:50Z | Списание с расчетного счета 00000000147 от 22.05.2020 10:12:50 | 60.01 / 51 | 211833\n4. 2020-05-18T12:00:02Z | Списание с расчетного счета 00000000145 от 18.05.2020 12:00:02 | 60.01 / 51 | 187967", + "assistant_reply_first_line": "Адресный срез по счету собран (по движениям live MCP).", + "expected_intent": "account_balance_snapshot", + "actual_intent": "account_balance_snapshot", + "intent_match": true, + "expected_mode": "address_query", + "actual_mode": "address_query", + "mode_match": true, + "expected_reply_type": null, + "reply_match": true, + "semantic_pass": true, + "route_pass": true, + "route_health": "ok_or_factual", + "strict_policy": "route", + "strict_pass": true, + "selected_recipe": "address_movements_account_snapshot_v1", + "missing_required_filters": [], + "match_failure_stage": "none", + "match_failure_reason": null, + "rows_fetched": 6, + "rows_matched": 6, + "mcp_call_status": "matched_non_empty", + "limited_reason_category": null, + "llm_decomposition_applied": false, + "llm_decomposition_reason": "not_address_like", + "fallback_rule_hit": null, + "debug_payload": { + "trace_id": "address-IXWN2zjtzB", + "prompt_version": "address_query_runtime_v1", + "schema_version": "address_query_runtime_v1", + "fallback_type": "none", + "route_summary": null, + "fragments": [], + "requirements_extracted": [], + "coverage_report": { + "requirements_total": 0, + "requirements_covered": 0, + "requirements_uncovered": [], + "requirements_partially_covered": [], + "clarification_needed_for": [], + "out_of_scope_requirements": [] + }, + "routes": [], + "retrieval_status": [], + "retrieval_results": [], + "answer_grounding_check": { + "status": "grounded", + "route_subject_match": true, + "missing_requirements": [], + "reasons": [ + "no_address_or_deep_signal", + "address_mode_from_followup_context", + "shape_not_detected", + "intent_not_supported_in_v1", + "intent_from_followup_context", + "account_from_followup_context", + "address_followup_context_applied" + ], + "why_included_summary": [], + "selection_reason_summary": [] + }, + "dropped_intent_segments": [], + "detected_mode": "address_query", + "detected_mode_confidence": "medium", + "query_shape": "UNKNOWN", + "query_shape_confidence": "low", + "detected_intent": "account_balance_snapshot", + "detected_intent_confidence": "low", + "extracted_filters": { + "sort": "period_desc", + "limit": 20, + "period_from": "2020-05-01", + "period_to": "2020-05-31", + "as_of_date": "2020-05-31", + "account": "60" + }, + "missing_required_filters": [], + "selected_recipe": "address_movements_account_snapshot_v1", + "mcp_call_status_legacy": "matched_non_empty", + "account_scope_mode": "strict", + "account_scope_fallback_applied": false, + "anchor_type": "account", + "anchor_value_raw": "60", + "anchor_value_resolved": "60", + "resolver_confidence": "high", + "ambiguity_count": 0, + "match_failure_stage": "none", + "match_failure_reason": null, + "mcp_call_status": "matched_non_empty", + "rows_fetched": 6, + "raw_rows_received": 6, + "rows_after_account_scope": 6, + "rows_after_recipe_filter": 6, + "rows_materialized": 6, + "rows_matched": 6, + "raw_row_keys_sample": [ + "Период", + "Регистратор", + "СчетДт", + "СчетКт", + "Сумма", + "Period", + "Registrator", + "AccountDt", + "AccountKt", + "Amount" + ], + "materialization_drop_reason": "none", + "account_token_raw": "60", + "account_token_normalized": "60", + "account_scope_fields_checked": [ + "account_dt", + "account_kt", + "registrator", + "analytics" + ], + "account_scope_match_strategy": "account_code_regex_plus_alias_map_v1", + "account_scope_drop_reason": "rows_remaining_after_scope_filter", + "runtime_readiness": "LIVE_QUERYABLE_WITH_LIMITS", + "limited_reason_category": null, + "response_type": "FACTUAL_SUMMARY", + "execution_lane": "address_query", + "llm_decomposition_applied": false, + "llm_decomposition_attempted": false, + "llm_provider_used": "local", + "llm_decomposition_trace_id": null, + "llm_decomposition_effective_message": "а теперь только май 2020", + "llm_decomposition_reason": "not_address_like", + "fallback_rule_hit": null, + "sanitized_user_message": "а теперь только май 2020", + "tool_gate_decision": "run_address_lane", + "tool_gate_reason": "followup_context_detected", + "answer_structure_v11": null, + "investigation_state_snapshot": null, + "normalized": null, + "normalizer_output": null + }, + "error_code": null, + "error_message": null + }, + { + "index": 13, + "id": "F013", + "question": "а на ту же дату по 62", + "session": "chain_balance_c", + "session_id": "asst-2026-04-02_Address_Followup_Context_Chains_2026-04-02_13-47-Run1-chain_balance_c", + "status_code": 200, + "ok": true, + "elapsed_ms": 1018, + "reply_type": "factual", + "trace_id": "address-VBLXuCxyk7", + "assistant_reply": "Адресный срез по счету собран (по движениям live MCP).\nСтрок отобрано: 4.\nСумма по отобранным движениям: 2545546.24.\n1. 2020-05-21T12:00:00Z | Поступление на расчетный счет 00000000023 от 21.05.2020 12:00:00 | 51 / 62.02 | 250546.24\n2. 2020-05-18T12:00:01Z | Реализация товаров и услуг 00000000002 от 18.05.2020 12:00:01 | 62.01 / 90.01.1 | 765000\n3. 2020-05-18T12:00:01Z | Реализация товаров и услуг 00000000002 от 18.05.2020 12:00:01 | 62.02 / 62.01 | 765000\n4. 2020-05-15T12:00:02Z | Поступление на расчетный счет 00000000022 от 15.05.2020 12:00:02 | 51 / 62.02 | 765000", + "assistant_reply_first_line": "Адресный срез по счету собран (по движениям live MCP).", + "expected_intent": "account_balance_snapshot", + "actual_intent": "account_balance_snapshot", + "intent_match": true, + "expected_mode": "address_query", + "actual_mode": "address_query", + "mode_match": true, + "expected_reply_type": null, + "reply_match": true, + "semantic_pass": true, + "route_pass": true, + "route_health": "ok_or_factual", + "strict_policy": "route", + "strict_pass": true, + "selected_recipe": "address_movements_account_snapshot_v1", + "missing_required_filters": [], + "match_failure_stage": "none", + "match_failure_reason": null, + "rows_fetched": 4, + "rows_matched": 4, + "mcp_call_status": "matched_non_empty", + "limited_reason_category": null, + "llm_decomposition_applied": false, + "llm_decomposition_reason": "not_address_like", + "fallback_rule_hit": null, + "debug_payload": { + "trace_id": "address-VBLXuCxyk7", + "prompt_version": "address_query_runtime_v1", + "schema_version": "address_query_runtime_v1", + "fallback_type": "none", + "route_summary": null, + "fragments": [], + "requirements_extracted": [], + "coverage_report": { + "requirements_total": 0, + "requirements_covered": 0, + "requirements_uncovered": [], + "requirements_partially_covered": [], + "clarification_needed_for": [], + "out_of_scope_requirements": [] + }, + "routes": [], + "retrieval_status": [], + "retrieval_results": [], + "answer_grounding_check": { + "status": "grounded", + "route_subject_match": true, + "missing_requirements": [], + "reasons": [ + "no_address_or_deep_signal", + "address_mode_from_followup_context", + "shape_not_detected", + "intent_not_supported_in_v1", + "intent_from_followup_context", + "as_of_date_from_followup_context", + "period_from_followup_context", + "address_followup_context_applied" + ], + "why_included_summary": [], + "selection_reason_summary": [] + }, + "dropped_intent_segments": [], + "detected_mode": "address_query", + "detected_mode_confidence": "medium", + "query_shape": "UNKNOWN", + "query_shape_confidence": "low", + "detected_intent": "account_balance_snapshot", + "detected_intent_confidence": "low", + "extracted_filters": { + "sort": "period_desc", + "limit": 20, + "account": "62", + "as_of_date": "2020-05-31", + "period_from": "2020-05-01", + "period_to": "2020-05-31" + }, + "missing_required_filters": [], + "selected_recipe": "address_movements_account_snapshot_v1", + "mcp_call_status_legacy": "matched_non_empty", + "account_scope_mode": "strict", + "account_scope_fallback_applied": false, + "anchor_type": "account", + "anchor_value_raw": "62", + "anchor_value_resolved": "62", + "resolver_confidence": "high", + "ambiguity_count": 0, + "match_failure_stage": "none", + "match_failure_reason": null, + "mcp_call_status": "matched_non_empty", + "rows_fetched": 4, + "raw_rows_received": 4, + "rows_after_account_scope": 4, + "rows_after_recipe_filter": 4, + "rows_materialized": 4, + "rows_matched": 4, + "raw_row_keys_sample": [ + "Период", + "Регистратор", + "СчетДт", + "СчетКт", + "Сумма", + "Period", + "Registrator", + "AccountDt", + "AccountKt", + "Amount" + ], + "materialization_drop_reason": "none", + "account_token_raw": "62", + "account_token_normalized": "62", + "account_scope_fields_checked": [ + "account_dt", + "account_kt", + "registrator", + "analytics" + ], + "account_scope_match_strategy": "account_code_regex_plus_alias_map_v1", + "account_scope_drop_reason": "rows_remaining_after_scope_filter", + "runtime_readiness": "LIVE_QUERYABLE_WITH_LIMITS", + "limited_reason_category": null, + "response_type": "FACTUAL_SUMMARY", + "execution_lane": "address_query", + "llm_decomposition_applied": false, + "llm_decomposition_attempted": false, + "llm_provider_used": "local", + "llm_decomposition_trace_id": null, + "llm_decomposition_effective_message": "а на ту же дату по 62", + "llm_decomposition_reason": "not_address_like", + "fallback_rule_hit": null, + "sanitized_user_message": "а на ту же дату по 62", + "tool_gate_decision": "run_address_lane", + "tool_gate_reason": "address_signal_detected", + "answer_structure_v11": null, + "investigation_state_snapshot": null, + "normalized": null, + "normalizer_output": null + }, + "error_code": null, + "error_message": null + }, + { + "index": 14, + "id": "F014", + "question": "раскрой 62 документами на ту же дату", + "session": "chain_balance_c", + "session_id": "asst-2026-04-02_Address_Followup_Context_Chains_2026-04-02_13-47-Run1-chain_balance_c", + "status_code": 200, + "ok": true, + "elapsed_ms": 7343, + "reply_type": "factual", + "trace_id": "address-74IhAbkkza", + "assistant_reply": "Точный якорь не подтвердился в текущем окне live-данных; показаны ближайшие доступные документы/операции по выбранному типу.\nСобран список документов по контрагенту (live address lane).\nСтрок отобрано: 2.\n1. 2020-05-21T12:00:00Z | Поступление на расчетный счет 00000000023 от 21.05.2020 12:00:00 | 0 / 0 | 250546.24 | аналитика: ЗАО Ремонтно-строительная фирма «Ремстройсервис»\n2. 2020-05-15T12:00:02Z | Поступление на расчетный счет 00000000022 от 15.05.2020 12:00:02 | 0 / 0 | 765000 | аналитика: ПрофТренд,ООО", + "assistant_reply_first_line": "Точный якорь не подтвердился в текущем окне live-данных; показаны ближайшие доступные документы/операции по выбранному типу.", + "expected_intent": "documents_forming_balance", + "actual_intent": "list_documents_by_counterparty", + "intent_match": false, + "expected_mode": "address_query", + "actual_mode": "address_query", + "mode_match": true, + "expected_reply_type": null, + "reply_match": true, + "semantic_pass": false, + "route_pass": false, + "route_health": "ok_or_factual", + "strict_policy": "route", + "strict_pass": false, + "selected_recipe": "address_documents_by_counterparty_v1", + "missing_required_filters": [], + "match_failure_stage": "materialized_but_not_anchor_matched", + "match_failure_reason": "account_anchor_not_matched_in_materialized_rows", + "rows_fetched": 20, + "rows_matched": 2, + "mcp_call_status": "matched_non_empty", + "limited_reason_category": null, + "llm_decomposition_applied": true, + "llm_decomposition_reason": "normalized_fragment_applied", + "fallback_rule_hit": null, + "debug_payload": { + "trace_id": "address-74IhAbkkza", + "prompt_version": "address_query_runtime_v1", + "schema_version": "address_query_runtime_v1", + "fallback_type": "none", + "route_summary": null, + "fragments": [], + "requirements_extracted": [], + "coverage_report": { + "requirements_total": 0, + "requirements_covered": 0, + "requirements_uncovered": [], + "requirements_partially_covered": [], + "clarification_needed_for": [], + "out_of_scope_requirements": [] + }, + "routes": [], + "retrieval_status": [], + "retrieval_results": [], + "answer_grounding_check": { + "status": "grounded", + "route_subject_match": true, + "missing_requirements": [], + "reasons": [ + "address_entity_detected", + "document_list_signal_detected", + "documents_by_counterparty_signal_detected", + "period_from_followup_context", + "address_followup_context_applied", + "anchor_not_matched_fallback_rows" + ], + "why_included_summary": [], + "selection_reason_summary": [] + }, + "dropped_intent_segments": [], + "detected_mode": "address_query", + "detected_mode_confidence": "medium", + "query_shape": "DOCUMENT_LIST", + "query_shape_confidence": "medium", + "detected_intent": "list_documents_by_counterparty", + "detected_intent_confidence": "medium", + "extracted_filters": { + "sort": "period_desc", + "limit": 20, + "account": "62", + "counterparty": "раскрыть", + "period_from": "2020-05-01", + "period_to": "2020-05-31" + }, + "missing_required_filters": [], + "selected_recipe": "address_documents_by_counterparty_v1", + "mcp_call_status_legacy": "matched_non_empty", + "account_scope_mode": "preferred", + "account_scope_fallback_applied": false, + "anchor_type": "counterparty", + "anchor_value_raw": "раскрыть", + "anchor_value_resolved": "раскрыть", + "resolver_confidence": "medium", + "ambiguity_count": 0, + "match_failure_stage": "materialized_but_not_anchor_matched", + "match_failure_reason": "account_anchor_not_matched_in_materialized_rows", + "mcp_call_status": "matched_non_empty", + "rows_fetched": 20, + "raw_rows_received": 20, + "rows_after_account_scope": 2, + "rows_after_recipe_filter": 0, + "rows_materialized": 2, + "rows_matched": 2, + "raw_row_keys_sample": [ + "Период", + "Регистратор", + "СчетДт", + "СчетКт", + "Сумма", + "Контрагент", + "Period", + "Registrator", + "Amount" + ], + "materialization_drop_reason": "none", + "account_token_raw": "62", + "account_token_normalized": "62", + "account_scope_fields_checked": [ + "account_dt", + "account_kt", + "registrator", + "analytics" + ], + "account_scope_match_strategy": "account_code_regex_plus_alias_map_v1", + "account_scope_drop_reason": "not_applicable", + "runtime_readiness": "LIVE_QUERYABLE_WITH_LIMITS", + "limited_reason_category": null, + "response_type": "FACTUAL_LIST", + "execution_lane": "address_query", + "llm_decomposition_applied": true, + "llm_decomposition_attempted": true, + "llm_provider_used": "local", + "llm_decomposition_trace_id": "HyfJ4nZGaCEupV", + "llm_decomposition_effective_message": "раскрыть счет 62 документами, указанными на ту же дату", + "llm_decomposition_reason": "normalized_fragment_applied", + "fallback_rule_hit": null, + "sanitized_user_message": "раскрой 62 документами на ту же дату", + "tool_gate_decision": "run_address_lane", + "tool_gate_reason": "address_mode_classifier_detected", + "answer_structure_v11": null, + "investigation_state_snapshot": null, + "normalized": null, + "normalizer_output": { + "trace_id": "HyfJ4nZGaCEupV", + "prompt_version": "normalizer_v2_0_2", + "applied": true, + "effective_message": "раскрыть счет 62 документами, указанными на ту же дату" + } + }, + "error_code": null, + "error_message": null + }, + { + "index": 15, + "id": "F015", + "question": "вернись на 2020-12-31 по 60", + "session": "chain_balance_c", + "session_id": "asst-2026-04-02_Address_Followup_Context_Chains_2026-04-02_13-47-Run1-chain_balance_c", + "status_code": 200, + "ok": true, + "elapsed_ms": 2989, + "reply_type": "factual", + "trace_id": "address-cN36pRe4OG", + "assistant_reply": "Точный якорь не подтвердился в текущем окне live-данных; показаны ближайшие доступные документы/операции по выбранному типу.\nСобран список документов по контрагенту (live address lane).\nСтрок отобрано: 5.\n1. 2020-12-30T12:00:00Z | Поступление на расчетный счет 00000000044 от 30.12.2020 12:00:00 | 0 / 0 | 3248300 | аналитика: Группа\n2. 2020-12-16T16:20:53Z | Поступление на расчетный счет 00000000043 от 16.12.2020 16:20:53 | 0 / 0 | 216600 | аналитика: Группа\n3. 2020-12-16T16:20:52Z | Списание с расчетного счета 00000000294 от 16.12.2020 16:20:52 | 0 / 0 | 3849.26 | аналитика: УФК по г. Москве (для ГУ - Отделения ПФР по г. Москве и МО)\n4. 2020-12-16T16:20:51Z | Списание с расчетного счета 00000000293 от 16.12.2020 16:20:51 | 0 / 0 | 60 | аналитика: СБЕРБАНК, ПАО\n5. 2020-12-14T12:00:00Z | Поступление на расчетный счет 00000000042 от 14.12.2020 12:00:00 | 0 / 0 | 200000 | аналитика: Группа", + "assistant_reply_first_line": "Точный якорь не подтвердился в текущем окне live-данных; показаны ближайшие доступные документы/операции по выбранному типу.", + "expected_intent": "account_balance_snapshot", + "actual_intent": "list_documents_by_counterparty", + "intent_match": false, + "expected_mode": "address_query", + "actual_mode": "address_query", + "mode_match": true, + "expected_reply_type": null, + "reply_match": true, + "semantic_pass": false, + "route_pass": false, + "route_health": "ok_or_factual", + "strict_policy": "route", + "strict_pass": false, + "selected_recipe": "address_documents_by_counterparty_v1", + "missing_required_filters": [], + "match_failure_stage": "materialized_but_not_anchor_matched", + "match_failure_reason": "counterparty_anchor_not_matched_in_materialized_rows", + "rows_fetched": 20, + "rows_matched": 5, + "mcp_call_status": "matched_non_empty", + "limited_reason_category": null, + "llm_decomposition_applied": false, + "llm_decomposition_reason": "not_address_like", + "fallback_rule_hit": null, + "debug_payload": { + "trace_id": "address-cN36pRe4OG", + "prompt_version": "address_query_runtime_v1", + "schema_version": "address_query_runtime_v1", + "fallback_type": "none", + "route_summary": null, + "fragments": [], + "requirements_extracted": [], + "coverage_report": { + "requirements_total": 0, + "requirements_covered": 0, + "requirements_uncovered": [], + "requirements_partially_covered": [], + "clarification_needed_for": [], + "out_of_scope_requirements": [] + }, + "routes": [], + "retrieval_status": [], + "retrieval_results": [], + "answer_grounding_check": { + "status": "grounded", + "route_subject_match": true, + "missing_requirements": [], + "reasons": [ + "no_address_or_deep_signal", + "address_mode_from_followup_context", + "shape_not_detected", + "intent_not_supported_in_v1", + "intent_from_followup_context", + "counterparty_from_followup_context", + "address_followup_context_applied", + "anchor_not_matched_fallback_rows" + ], + "why_included_summary": [], + "selection_reason_summary": [] + }, + "dropped_intent_segments": [], + "detected_mode": "address_query", + "detected_mode_confidence": "medium", + "query_shape": "UNKNOWN", + "query_shape_confidence": "low", + "detected_intent": "list_documents_by_counterparty", + "detected_intent_confidence": "low", + "extracted_filters": { + "sort": "period_desc", + "limit": 20, + "period_from": "2020-12-01", + "period_to": "2020-12-31", + "counterparty": "раскрыть" + }, + "missing_required_filters": [], + "selected_recipe": "address_documents_by_counterparty_v1", + "mcp_call_status_legacy": "matched_non_empty", + "account_scope_mode": "preferred", + "account_scope_fallback_applied": false, + "anchor_type": "counterparty", + "anchor_value_raw": "раскрыть", + "anchor_value_resolved": "раскрыть", + "resolver_confidence": "medium", + "ambiguity_count": 0, + "match_failure_stage": "materialized_but_not_anchor_matched", + "match_failure_reason": "counterparty_anchor_not_matched_in_materialized_rows", + "mcp_call_status": "matched_non_empty", + "rows_fetched": 20, + "raw_rows_received": 20, + "rows_after_account_scope": 5, + "rows_after_recipe_filter": 0, + "rows_materialized": 5, + "rows_matched": 5, + "raw_row_keys_sample": [ + "Период", + "Регистратор", + "СчетДт", + "СчетКт", + "Сумма", + "Контрагент", + "Period", + "Registrator", + "Amount" + ], + "materialization_drop_reason": "none", + "account_token_raw": null, + "account_token_normalized": null, + "account_scope_fields_checked": [ + "account_dt", + "account_kt", + "registrator", + "analytics" + ], + "account_scope_match_strategy": "account_code_regex_plus_alias_map_v1", + "account_scope_drop_reason": "not_applicable", + "runtime_readiness": "LIVE_QUERYABLE_WITH_LIMITS", + "limited_reason_category": null, + "response_type": "FACTUAL_LIST", + "execution_lane": "address_query", + "llm_decomposition_applied": false, + "llm_decomposition_attempted": false, + "llm_provider_used": "local", + "llm_decomposition_trace_id": null, + "llm_decomposition_effective_message": "вернись на 2020-12-31 по 60", + "llm_decomposition_reason": "not_address_like", + "fallback_rule_hit": null, + "sanitized_user_message": "вернись на 2020-12-31 по 60", + "tool_gate_decision": "run_address_lane", + "tool_gate_reason": "address_signal_detected", + "answer_structure_v11": null, + "investigation_state_snapshot": null, + "normalized": null, + "normalizer_output": null + }, + "error_code": null, + "error_message": null + }, + { + "index": 16, + "id": "F016", + "question": "Покажи документы по договору 24/15 за 2020", + "session": "chain_contract_d", + "session_id": "asst-2026-04-02_Address_Followup_Context_Chains_2026-04-02_13-47-Run1-chain_contract_d", + "status_code": 200, + "ok": true, + "elapsed_ms": 8206, + "reply_type": "factual", + "trace_id": "address-OLj1RjxpbE", + "assistant_reply": "По окну 2020-01-01..2020-12-31 строк не найдено; показаны ближайшие доступные данные 2020-10-15..2020-10-15.\nСобран список документов по договору (live address lane).\nСтрок отобрано: 2.\n1. 2020-10-15T13:34:53Z | Списание с расчетного счета 00000000246 от 15.10.2020 13:34:53 | 66.02 / 51 | 30819.47\n2. 2020-10-15T13:34:19Z | Списание с расчетного счета 00000000245 от 15.10.2020 13:34:19 | 66.01 / 51 | 134206.53", + "assistant_reply_first_line": "По окну 2020-01-01..2020-12-31 строк не найдено; показаны ближайшие доступные данные 2020-10-15..2020-10-15.", + "expected_intent": "list_documents_by_contract", + "actual_intent": "list_documents_by_contract", + "intent_match": true, + "expected_mode": "address_query", + "actual_mode": "address_query", + "mode_match": true, + "expected_reply_type": null, + "reply_match": true, + "semantic_pass": true, + "route_pass": true, + "route_health": "ok_or_factual", + "strict_policy": "route", + "strict_pass": true, + "selected_recipe": "address_documents_by_contract_v1", + "missing_required_filters": [], + "match_failure_stage": "none", + "match_failure_reason": null, + "rows_fetched": 1000, + "rows_matched": 2, + "mcp_call_status": "matched_non_empty", + "limited_reason_category": null, + "llm_decomposition_applied": true, + "llm_decomposition_reason": "normalized_fragment_applied", + "fallback_rule_hit": null, + "debug_payload": { + "trace_id": "address-OLj1RjxpbE", + "prompt_version": "address_query_runtime_v1", + "schema_version": "address_query_runtime_v1", + "fallback_type": "none", + "route_summary": null, + "fragments": [], + "requirements_extracted": [], + "coverage_report": { + "requirements_total": 0, + "requirements_covered": 0, + "requirements_uncovered": [], + "requirements_partially_covered": [], + "clarification_needed_for": [], + "out_of_scope_requirements": [] + }, + "routes": [], + "retrieval_status": [], + "retrieval_results": [], + "answer_grounding_check": { + "status": "grounded", + "route_subject_match": true, + "missing_requirements": [], + "reasons": [ + "address_action_detected", + "address_entity_detected", + "document_list_signal_detected", + "documents_by_contract_signal_detected", + "period_window_auto_broadened_to_available_data" + ], + "why_included_summary": [], + "selection_reason_summary": [] + }, + "dropped_intent_segments": [], + "detected_mode": "address_query", + "detected_mode_confidence": "high", + "query_shape": "DOCUMENT_LIST", + "query_shape_confidence": "medium", + "detected_intent": "list_documents_by_contract", + "detected_intent_confidence": "medium", + "extracted_filters": { + "sort": "period_desc", + "limit": 20, + "contract": "24/15", + "period_from": "2020-01-01", + "period_to": "2020-12-31" + }, + "missing_required_filters": [], + "selected_recipe": "address_documents_by_contract_v1", + "mcp_call_status_legacy": "matched_non_empty", + "account_scope_mode": "preferred", + "account_scope_fallback_applied": false, + "anchor_type": "contract", + "anchor_value_raw": "24/15", + "anchor_value_resolved": "24/15", + "resolver_confidence": "medium", + "ambiguity_count": 0, + "match_failure_stage": "none", + "match_failure_reason": null, + "mcp_call_status": "matched_non_empty", + "rows_fetched": 1000, + "raw_rows_received": 1000, + "rows_after_account_scope": 416, + "rows_after_recipe_filter": 2, + "rows_materialized": 416, + "rows_matched": 2, + "raw_row_keys_sample": [ + "Период", + "Регистратор", + "СчетДт", + "СчетКт", + "Сумма", + "Period", + "Registrator", + "AccountDt", + "AccountKt", + "Amount" + ], + "materialization_drop_reason": "none", + "account_token_raw": null, + "account_token_normalized": null, + "account_scope_fields_checked": [ + "account_dt", + "account_kt", + "registrator", + "analytics" + ], + "account_scope_match_strategy": "account_code_regex_plus_alias_map_v1", + "account_scope_drop_reason": "not_applicable", + "runtime_readiness": "LIVE_QUERYABLE_WITH_LIMITS", + "limited_reason_category": null, + "response_type": "FACTUAL_LIST", + "execution_lane": "address_query", + "llm_decomposition_applied": true, + "llm_decomposition_attempted": true, + "llm_provider_used": "local", + "llm_decomposition_trace_id": "RXGdwG2ECcTL2c", + "llm_decomposition_effective_message": "Показать документы по договору 24/15 за период 2020 года.", + "llm_decomposition_reason": "normalized_fragment_applied", + "fallback_rule_hit": null, + "sanitized_user_message": "покажи документы по договору 24/15 за 2020", + "tool_gate_decision": "run_address_lane", + "tool_gate_reason": "address_mode_classifier_detected", + "answer_structure_v11": null, + "investigation_state_snapshot": null, + "normalized": null, + "normalizer_output": { + "trace_id": "RXGdwG2ECcTL2c", + "prompt_version": "normalizer_v2_0_2", + "applied": true, + "effective_message": "Показать документы по договору 24/15 за период 2020 года." + } + }, + "error_code": null, + "error_message": null + }, + { + "index": 17, + "id": "F017", + "question": "а теперь банковские операции", + "session": "chain_contract_d", + "session_id": "asst-2026-04-02_Address_Followup_Context_Chains_2026-04-02_13-47-Run1-chain_contract_d", + "status_code": 200, + "ok": true, + "elapsed_ms": 8035, + "reply_type": "factual", + "trace_id": "address-0xLFU245v5", + "assistant_reply": "Точный якорь не подтвердился в текущем окне live-данных; показаны ближайшие доступные документы/операции по выбранному типу.\nСобран список банковских операций по контрагенту (live address lane).\nСтрок отобрано: 5.\n1. 2020-12-30T12:00:00Z | Поступление на расчетный счет 00000000044 от 30.12.2020 12:00:00 | 0 / 0 | 3248300 | аналитика: Группа\n2. 2020-12-16T16:20:53Z | Поступление на расчетный счет 00000000043 от 16.12.2020 16:20:53 | 0 / 0 | 216600 | аналитика: Группа\n3. 2020-12-16T16:20:52Z | Списание с расчетного счета 00000000294 от 16.12.2020 16:20:52 | 0 / 0 | 3849.26 | аналитика: УФК по г. Москве (для ГУ - Отделения ПФР по г. Москве и МО)\n4. 2020-12-16T16:20:51Z | Списание с расчетного счета 00000000293 от 16.12.2020 16:20:51 | 0 / 0 | 60 | аналитика: СБЕРБАНК, ПАО\n5. 2020-12-14T12:00:00Z | Поступление на расчетный счет 00000000042 от 14.12.2020 12:00:00 | 0 / 0 | 200000 | аналитика: Группа", + "assistant_reply_first_line": "Точный якорь не подтвердился в текущем окне live-данных; показаны ближайшие доступные документы/операции по выбранному типу.", + "expected_intent": "bank_operations_by_contract", + "actual_intent": "bank_operations_by_counterparty", + "intent_match": false, + "expected_mode": "address_query", + "actual_mode": "address_query", + "mode_match": true, + "expected_reply_type": null, + "reply_match": true, + "semantic_pass": false, + "route_pass": false, + "route_health": "ok_or_factual", + "strict_policy": "route", + "strict_pass": false, + "selected_recipe": "address_bank_operations_by_counterparty_v1", + "missing_required_filters": [], + "match_failure_stage": "materialized_but_not_anchor_matched", + "match_failure_reason": "counterparty_anchor_not_matched_in_materialized_rows", + "rows_fetched": 20, + "rows_matched": 5, + "mcp_call_status": "matched_non_empty", + "limited_reason_category": null, + "llm_decomposition_applied": false, + "llm_decomposition_reason": "normalized_fragment_same", + "fallback_rule_hit": null, + "debug_payload": { + "trace_id": "address-0xLFU245v5", + "prompt_version": "address_query_runtime_v1", + "schema_version": "address_query_runtime_v1", + "fallback_type": "none", + "route_summary": null, + "fragments": [], + "requirements_extracted": [], + "coverage_report": { + "requirements_total": 0, + "requirements_covered": 0, + "requirements_uncovered": [], + "requirements_partially_covered": [], + "clarification_needed_for": [], + "out_of_scope_requirements": [] + }, + "routes": [], + "retrieval_status": [], + "retrieval_results": [], + "answer_grounding_check": { + "status": "grounded", + "route_subject_match": true, + "missing_requirements": [], + "reasons": [ + "address_entity_detected", + "shape_not_detected", + "bank_ops_by_counterparty_signal_detected", + "period_from_followup_context", + "address_followup_context_applied", + "anchor_not_matched_fallback_rows" + ], + "why_included_summary": [], + "selection_reason_summary": [] + }, + "dropped_intent_segments": [], + "detected_mode": "address_query", + "detected_mode_confidence": "medium", + "query_shape": "UNKNOWN", + "query_shape_confidence": "low", + "detected_intent": "bank_operations_by_counterparty", + "detected_intent_confidence": "medium", + "extracted_filters": { + "sort": "period_desc", + "limit": 20, + "counterparty": "теперь", + "period_from": "2020-01-01", + "period_to": "2020-12-31" + }, + "missing_required_filters": [], + "selected_recipe": "address_bank_operations_by_counterparty_v1", + "mcp_call_status_legacy": "matched_non_empty", + "account_scope_mode": "preferred", + "account_scope_fallback_applied": false, + "anchor_type": "counterparty", + "anchor_value_raw": "теперь", + "anchor_value_resolved": "теперь", + "resolver_confidence": "medium", + "ambiguity_count": 0, + "match_failure_stage": "materialized_but_not_anchor_matched", + "match_failure_reason": "counterparty_anchor_not_matched_in_materialized_rows", + "mcp_call_status": "matched_non_empty", + "rows_fetched": 20, + "raw_rows_received": 20, + "rows_after_account_scope": 5, + "rows_after_recipe_filter": 0, + "rows_materialized": 5, + "rows_matched": 5, + "raw_row_keys_sample": [ + "Период", + "Регистратор", + "СчетДт", + "СчетКт", + "Сумма", + "Контрагент", + "Period", + "Registrator", + "Amount" + ], + "materialization_drop_reason": "none", + "account_token_raw": null, + "account_token_normalized": null, + "account_scope_fields_checked": [ + "account_dt", + "account_kt", + "registrator", + "analytics" + ], + "account_scope_match_strategy": "account_code_regex_plus_alias_map_v1", + "account_scope_drop_reason": "not_applicable", + "runtime_readiness": "LIVE_QUERYABLE_WITH_LIMITS", + "limited_reason_category": null, + "response_type": "FACTUAL_LIST", + "execution_lane": "address_query", + "llm_decomposition_applied": false, + "llm_decomposition_attempted": true, + "llm_provider_used": "local", + "llm_decomposition_trace_id": "CrJCUxlPsSFAC7", + "llm_decomposition_effective_message": "а теперь банковские операции", + "llm_decomposition_reason": "normalized_fragment_same", + "fallback_rule_hit": null, + "sanitized_user_message": "а теперь банковские операции", + "tool_gate_decision": "run_address_lane", + "tool_gate_reason": "address_mode_classifier_detected", + "answer_structure_v11": null, + "investigation_state_snapshot": null, + "normalized": null, + "normalizer_output": { + "trace_id": "CrJCUxlPsSFAC7", + "prompt_version": "normalizer_v2_0_2", + "applied": false, + "effective_message": "а теперь банковские операции" + } + }, + "error_code": null, + "error_message": null + }, + { + "index": 18, + "id": "F018", + "question": "а теперь только май 2020", + "session": "chain_contract_d", + "session_id": "asst-2026-04-02_Address_Followup_Context_Chains_2026-04-02_13-47-Run1-chain_contract_d", + "status_code": 200, + "ok": true, + "elapsed_ms": 3063, + "reply_type": "factual", + "trace_id": "address-OowUudeajS", + "assistant_reply": "Точный якорь не подтвердился в текущем окне live-данных; показаны ближайшие доступные документы/операции по выбранному типу.\nСобран список банковских операций по контрагенту (live address lane).\nСтрок отобрано: 2.\n1. 2020-05-21T12:00:00Z | Поступление на расчетный счет 00000000023 от 21.05.2020 12:00:00 | 0 / 0 | 250546.24 | аналитика: ЗАО Ремонтно-строительная фирма «Ремстройсервис»\n2. 2020-05-15T12:00:02Z | Поступление на расчетный счет 00000000022 от 15.05.2020 12:00:02 | 0 / 0 | 765000 | аналитика: ПрофТренд,ООО", + "assistant_reply_first_line": "Точный якорь не подтвердился в текущем окне live-данных; показаны ближайшие доступные документы/операции по выбранному типу.", + "expected_intent": "bank_operations_by_contract", + "actual_intent": "bank_operations_by_counterparty", + "intent_match": false, + "expected_mode": "address_query", + "actual_mode": "address_query", + "mode_match": true, + "expected_reply_type": null, + "reply_match": true, + "semantic_pass": false, + "route_pass": false, + "route_health": "ok_or_factual", + "strict_policy": "route", + "strict_pass": false, + "selected_recipe": "address_bank_operations_by_counterparty_v1", + "missing_required_filters": [], + "match_failure_stage": "materialized_but_not_anchor_matched", + "match_failure_reason": "counterparty_anchor_not_matched_in_materialized_rows", + "rows_fetched": 20, + "rows_matched": 2, + "mcp_call_status": "matched_non_empty", + "limited_reason_category": null, + "llm_decomposition_applied": false, + "llm_decomposition_reason": "not_address_like", + "fallback_rule_hit": null, + "debug_payload": { + "trace_id": "address-OowUudeajS", + "prompt_version": "address_query_runtime_v1", + "schema_version": "address_query_runtime_v1", + "fallback_type": "none", + "route_summary": null, + "fragments": [], + "requirements_extracted": [], + "coverage_report": { + "requirements_total": 0, + "requirements_covered": 0, + "requirements_uncovered": [], + "requirements_partially_covered": [], + "clarification_needed_for": [], + "out_of_scope_requirements": [] + }, + "routes": [], + "retrieval_status": [], + "retrieval_results": [], + "answer_grounding_check": { + "status": "grounded", + "route_subject_match": true, + "missing_requirements": [], + "reasons": [ + "no_address_or_deep_signal", + "address_mode_from_followup_context", + "shape_not_detected", + "intent_not_supported_in_v1", + "intent_from_followup_context", + "counterparty_from_followup_context", + "address_followup_context_applied", + "anchor_not_matched_fallback_rows" + ], + "why_included_summary": [], + "selection_reason_summary": [] + }, + "dropped_intent_segments": [], + "detected_mode": "address_query", + "detected_mode_confidence": "medium", + "query_shape": "UNKNOWN", + "query_shape_confidence": "low", + "detected_intent": "bank_operations_by_counterparty", + "detected_intent_confidence": "low", + "extracted_filters": { + "sort": "period_desc", + "limit": 20, + "period_from": "2020-05-01", + "period_to": "2020-05-31", + "counterparty": "теперь" + }, + "missing_required_filters": [], + "selected_recipe": "address_bank_operations_by_counterparty_v1", + "mcp_call_status_legacy": "matched_non_empty", + "account_scope_mode": "preferred", + "account_scope_fallback_applied": false, + "anchor_type": "counterparty", + "anchor_value_raw": "теперь", + "anchor_value_resolved": "теперь", + "resolver_confidence": "medium", + "ambiguity_count": 0, + "match_failure_stage": "materialized_but_not_anchor_matched", + "match_failure_reason": "counterparty_anchor_not_matched_in_materialized_rows", + "mcp_call_status": "matched_non_empty", + "rows_fetched": 20, + "raw_rows_received": 20, + "rows_after_account_scope": 2, + "rows_after_recipe_filter": 0, + "rows_materialized": 2, + "rows_matched": 2, + "raw_row_keys_sample": [ + "Период", + "Регистратор", + "СчетДт", + "СчетКт", + "Сумма", + "Контрагент", + "Period", + "Registrator", + "Amount" + ], + "materialization_drop_reason": "none", + "account_token_raw": null, + "account_token_normalized": null, + "account_scope_fields_checked": [ + "account_dt", + "account_kt", + "registrator", + "analytics" + ], + "account_scope_match_strategy": "account_code_regex_plus_alias_map_v1", + "account_scope_drop_reason": "not_applicable", + "runtime_readiness": "LIVE_QUERYABLE_WITH_LIMITS", + "limited_reason_category": null, + "response_type": "FACTUAL_LIST", + "execution_lane": "address_query", + "llm_decomposition_applied": false, + "llm_decomposition_attempted": false, + "llm_provider_used": "local", + "llm_decomposition_trace_id": null, + "llm_decomposition_effective_message": "а теперь только май 2020", + "llm_decomposition_reason": "not_address_like", + "fallback_rule_hit": null, + "sanitized_user_message": "а теперь только май 2020", + "tool_gate_decision": "run_address_lane", + "tool_gate_reason": "followup_context_detected", + "answer_structure_v11": null, + "investigation_state_snapshot": null, + "normalized": null, + "normalizer_output": null + }, + "error_code": null, + "error_message": null + }, + { + "index": 19, + "id": "F019", + "question": "есть ли открытые позиции на ту же дату", + "session": "chain_contract_d", + "session_id": "asst-2026-04-02_Address_Followup_Context_Chains_2026-04-02_13-47-Run1-chain_contract_d", + "status_code": 200, + "ok": true, + "elapsed_ms": 3086, + "reply_type": "factual", + "trace_id": "address-xXK-0zx9A2", + "assistant_reply": "Точный якорь не подтвердился в текущем окне live-данных; показаны ближайшие доступные документы/операции по выбранному типу.\nСобран список банковских операций по контрагенту (live address lane).\nСтрок отобрано: 2.\n1. 2020-05-21T12:00:00Z | Поступление на расчетный счет 00000000023 от 21.05.2020 12:00:00 | 0 / 0 | 250546.24 | аналитика: ЗАО Ремонтно-строительная фирма «Ремстройсервис»\n2. 2020-05-15T12:00:02Z | Поступление на расчетный счет 00000000022 от 15.05.2020 12:00:02 | 0 / 0 | 765000 | аналитика: ПрофТренд,ООО", + "assistant_reply_first_line": "Точный якорь не подтвердился в текущем окне live-данных; показаны ближайшие доступные документы/операции по выбранному типу.", + "expected_intent": "open_items_by_counterparty_or_contract", + "actual_intent": "bank_operations_by_counterparty", + "intent_match": false, + "expected_mode": "address_query", + "actual_mode": "address_query", + "mode_match": true, + "expected_reply_type": null, + "reply_match": true, + "semantic_pass": false, + "route_pass": false, + "route_health": "ok_or_factual", + "strict_policy": "route", + "strict_pass": false, + "selected_recipe": "address_bank_operations_by_counterparty_v1", + "missing_required_filters": [], + "match_failure_stage": "materialized_but_not_anchor_matched", + "match_failure_reason": "counterparty_anchor_not_matched_in_materialized_rows", + "rows_fetched": 20, + "rows_matched": 2, + "mcp_call_status": "matched_non_empty", + "limited_reason_category": null, + "llm_decomposition_applied": false, + "llm_decomposition_reason": "not_address_like", + "fallback_rule_hit": null, + "debug_payload": { + "trace_id": "address-xXK-0zx9A2", + "prompt_version": "address_query_runtime_v1", + "schema_version": "address_query_runtime_v1", + "fallback_type": "none", + "route_summary": null, + "fragments": [], + "requirements_extracted": [], + "coverage_report": { + "requirements_total": 0, + "requirements_covered": 0, + "requirements_uncovered": [], + "requirements_partially_covered": [], + "clarification_needed_for": [], + "out_of_scope_requirements": [] + }, + "routes": [], + "retrieval_status": [], + "retrieval_results": [], + "answer_grounding_check": { + "status": "grounded", + "route_subject_match": true, + "missing_requirements": [], + "reasons": [ + "no_address_or_deep_signal", + "address_mode_from_followup_context", + "verify_signal_detected", + "intent_not_supported_in_v1", + "intent_from_followup_context", + "counterparty_from_followup_context", + "period_from_followup_context", + "address_followup_context_applied", + "anchor_not_matched_fallback_rows" + ], + "why_included_summary": [], + "selection_reason_summary": [] + }, + "dropped_intent_segments": [], + "detected_mode": "address_query", + "detected_mode_confidence": "medium", + "query_shape": "VERIFY_FACTUAL", + "query_shape_confidence": "medium", + "detected_intent": "bank_operations_by_counterparty", + "detected_intent_confidence": "low", + "extracted_filters": { + "sort": "period_desc", + "limit": 20, + "counterparty": "теперь", + "period_from": "2020-05-01", + "period_to": "2020-05-31" + }, + "missing_required_filters": [], + "selected_recipe": "address_bank_operations_by_counterparty_v1", + "mcp_call_status_legacy": "matched_non_empty", + "account_scope_mode": "preferred", + "account_scope_fallback_applied": false, + "anchor_type": "counterparty", + "anchor_value_raw": "теперь", + "anchor_value_resolved": "теперь", + "resolver_confidence": "medium", + "ambiguity_count": 0, + "match_failure_stage": "materialized_but_not_anchor_matched", + "match_failure_reason": "counterparty_anchor_not_matched_in_materialized_rows", + "mcp_call_status": "matched_non_empty", + "rows_fetched": 20, + "raw_rows_received": 20, + "rows_after_account_scope": 2, + "rows_after_recipe_filter": 0, + "rows_materialized": 2, + "rows_matched": 2, + "raw_row_keys_sample": [ + "Период", + "Регистратор", + "СчетДт", + "СчетКт", + "Сумма", + "Контрагент", + "Period", + "Registrator", + "Amount" + ], + "materialization_drop_reason": "none", + "account_token_raw": null, + "account_token_normalized": null, + "account_scope_fields_checked": [ + "account_dt", + "account_kt", + "registrator", + "analytics" + ], + "account_scope_match_strategy": "account_code_regex_plus_alias_map_v1", + "account_scope_drop_reason": "not_applicable", + "runtime_readiness": "LIVE_QUERYABLE_WITH_LIMITS", + "limited_reason_category": null, + "response_type": "FACTUAL_LIST", + "execution_lane": "address_query", + "llm_decomposition_applied": false, + "llm_decomposition_attempted": false, + "llm_provider_used": "local", + "llm_decomposition_trace_id": null, + "llm_decomposition_effective_message": "есть ли открытые позиции на ту же дату", + "llm_decomposition_reason": "not_address_like", + "fallback_rule_hit": null, + "sanitized_user_message": "есть ли открытые позиции на ту же дату", + "tool_gate_decision": "run_address_lane", + "tool_gate_reason": "followup_context_detected", + "answer_structure_v11": null, + "investigation_state_snapshot": null, + "normalized": null, + "normalizer_output": null + }, + "error_code": null, + "error_message": null + }, + { + "index": 20, + "id": "F020", + "question": "покажи документы по этому же договору", + "session": "chain_contract_d", + "session_id": "asst-2026-04-02_Address_Followup_Context_Chains_2026-04-02_13-47-Run1-chain_contract_d", + "status_code": 200, + "ok": true, + "elapsed_ms": 5599, + "reply_type": "partial_coverage", + "trace_id": "address-1H1bTgJmmq", + "assistant_reply": "Для точного адресного поиска не хватает обязательного якоря.\nПричина: не хватает обязательных фильтров.\nЧто нужно уточнить: уточните: contract.", + "assistant_reply_first_line": "Для точного адресного поиска не хватает обязательного якоря.", + "expected_intent": "list_documents_by_contract", + "actual_intent": "list_documents_by_contract", + "intent_match": true, + "expected_mode": "address_query", + "actual_mode": "address_query", + "mode_match": true, + "expected_reply_type": null, + "reply_match": true, + "semantic_pass": true, + "route_pass": false, + "route_health": "blocked_missing_anchor", + "strict_policy": "route", + "strict_pass": false, + "selected_recipe": "address_documents_by_contract_v1", + "missing_required_filters": [ + "contract" + ], + "match_failure_stage": "none", + "match_failure_reason": null, + "rows_fetched": 0, + "rows_matched": 0, + "mcp_call_status": "skipped", + "limited_reason_category": "missing_anchor", + "llm_decomposition_applied": true, + "llm_decomposition_reason": "normalized_fragment_applied", + "fallback_rule_hit": null, + "debug_payload": { + "trace_id": "address-1H1bTgJmmq", + "prompt_version": "address_query_runtime_v1", + "schema_version": "address_query_runtime_v1", + "fallback_type": "partial", + "route_summary": null, + "fragments": [], + "requirements_extracted": [], + "coverage_report": { + "requirements_total": 0, + "requirements_covered": 0, + "requirements_uncovered": [], + "requirements_partially_covered": [], + "clarification_needed_for": [], + "out_of_scope_requirements": [] + }, + "routes": [], + "retrieval_status": [], + "retrieval_results": [], + "answer_grounding_check": { + "status": "partial", + "route_subject_match": true, + "missing_requirements": [], + "reasons": [ + "address_action_detected", + "address_entity_detected", + "document_list_signal_detected", + "documents_by_contract_signal_detected", + "period_from_followup_context", + "address_followup_context_applied", + "missing_required_filters" + ], + "why_included_summary": [], + "selection_reason_summary": [] + }, + "dropped_intent_segments": [], + "detected_mode": "address_query", + "detected_mode_confidence": "high", + "query_shape": "DOCUMENT_LIST", + "query_shape_confidence": "medium", + "detected_intent": "list_documents_by_contract", + "detected_intent_confidence": "medium", + "extracted_filters": { + "sort": "period_desc", + "limit": 20, + "period_from": "2020-05-01", + "period_to": "2020-05-31" + }, + "missing_required_filters": [ + "contract" + ], + "selected_recipe": "address_documents_by_contract_v1", + "mcp_call_status_legacy": "skipped", + "account_scope_mode": "strict", + "account_scope_fallback_applied": false, + "anchor_type": "unknown", + "anchor_value_raw": null, + "anchor_value_resolved": null, + "resolver_confidence": "low", + "ambiguity_count": 0, + "match_failure_stage": "none", + "match_failure_reason": null, + "mcp_call_status": "skipped", + "rows_fetched": 0, + "raw_rows_received": 0, + "rows_after_account_scope": 0, + "rows_after_recipe_filter": 0, + "rows_materialized": 0, + "rows_matched": 0, + "raw_row_keys_sample": [], + "materialization_drop_reason": "none", + "account_token_raw": null, + "account_token_normalized": null, + "account_scope_fields_checked": [ + "account_dt", + "account_kt", + "registrator", + "analytics" + ], + "account_scope_match_strategy": "account_code_regex_plus_alias_map_v1", + "account_scope_drop_reason": "not_applicable", + "runtime_readiness": "LIVE_QUERYABLE_WITH_LIMITS", + "limited_reason_category": "missing_anchor", + "response_type": "LIMITED_WITH_REASON", + "execution_lane": "address_query", + "llm_decomposition_applied": true, + "llm_decomposition_attempted": true, + "llm_provider_used": "local", + "llm_decomposition_trace_id": "Gtw7g7addpyWU0", + "llm_decomposition_effective_message": "Показать документы по указанному договору.", + "llm_decomposition_reason": "normalized_fragment_applied", + "fallback_rule_hit": null, + "sanitized_user_message": "покажи документы по этому же договору", + "tool_gate_decision": "run_address_lane", + "tool_gate_reason": "address_mode_classifier_detected", + "answer_structure_v11": null, + "investigation_state_snapshot": null, + "normalized": null, + "normalizer_output": { + "trace_id": "Gtw7g7addpyWU0", + "prompt_version": "normalizer_v2_0_2", + "applied": true, + "effective_message": "Показать документы по указанному договору." + } + }, + "error_code": null, + "error_message": null + }, + { + "index": 21, + "id": "F021", + "question": "Покажи банковские операции по договору 24/15", + "session": "chain_contract_e", + "session_id": "asst-2026-04-02_Address_Followup_Context_Chains_2026-04-02_13-47-Run1-chain_contract_e", + "status_code": 200, + "ok": true, + "elapsed_ms": 6561, + "reply_type": "factual", + "trace_id": "address-TS6oqb7wR0", + "assistant_reply": "Собран список банковских операций по договору (live address lane).\nСтрок отобрано: 3.\n1. 2020-10-15T13:34:53Z | Списание с расчетного счета 00000000246 от 15.10.2020 13:34:53 | 66.02 / 51 | 30819.47\n2. 2020-10-15T13:34:19Z | Списание с расчетного счета 00000000245 от 15.10.2020 13:34:19 | 66.01 / 51 | 134206.53\n3. 2020-08-31T15:00:04Z | Списание с расчетного счета 00000000224 от 31.08.2020 15:00:04 | 91.02 / 51 | 106.47", + "assistant_reply_first_line": "Собран список банковских операций по договору (live address lane).", + "expected_intent": "bank_operations_by_contract", + "actual_intent": "bank_operations_by_contract", + "intent_match": true, + "expected_mode": "address_query", + "actual_mode": "address_query", + "mode_match": true, + "expected_reply_type": null, + "reply_match": true, + "semantic_pass": true, + "route_pass": true, + "route_health": "ok_or_factual", + "strict_policy": "route", + "strict_pass": true, + "selected_recipe": "address_bank_operations_by_contract_v1", + "missing_required_filters": [], + "match_failure_stage": "none", + "match_failure_reason": null, + "rows_fetched": 1000, + "rows_matched": 3, + "mcp_call_status": "matched_non_empty", + "limited_reason_category": null, + "llm_decomposition_applied": true, + "llm_decomposition_reason": "normalized_fragment_applied", + "fallback_rule_hit": null, + "debug_payload": { + "trace_id": "address-TS6oqb7wR0", + "prompt_version": "address_query_runtime_v1", + "schema_version": "address_query_runtime_v1", + "fallback_type": "none", + "route_summary": null, + "fragments": [], + "requirements_extracted": [], + "coverage_report": { + "requirements_total": 0, + "requirements_covered": 0, + "requirements_uncovered": [], + "requirements_partially_covered": [], + "clarification_needed_for": [], + "out_of_scope_requirements": [] + }, + "routes": [], + "retrieval_status": [], + "retrieval_results": [], + "answer_grounding_check": { + "status": "grounded", + "route_subject_match": true, + "missing_requirements": [], + "reasons": [ + "address_action_detected", + "address_entity_detected", + "object_signal_detected", + "bank_ops_by_contract_signal_detected" + ], + "why_included_summary": [], + "selection_reason_summary": [] + }, + "dropped_intent_segments": [], + "detected_mode": "address_query", + "detected_mode_confidence": "high", + "query_shape": "OBJECT_LOOKUP", + "query_shape_confidence": "medium", + "detected_intent": "bank_operations_by_contract", + "detected_intent_confidence": "medium", + "extracted_filters": { + "sort": "period_desc", + "limit": 20, + "account": "51", + "contract": "24/15" + }, + "missing_required_filters": [], + "selected_recipe": "address_bank_operations_by_contract_v1", + "mcp_call_status_legacy": "matched_non_empty", + "account_scope_mode": "preferred", + "account_scope_fallback_applied": false, + "anchor_type": "contract", + "anchor_value_raw": "24/15", + "anchor_value_resolved": "24/15", + "resolver_confidence": "medium", + "ambiguity_count": 0, + "match_failure_stage": "none", + "match_failure_reason": null, + "mcp_call_status": "matched_non_empty", + "rows_fetched": 1000, + "raw_rows_received": 1000, + "rows_after_account_scope": 1000, + "rows_after_recipe_filter": 3, + "rows_materialized": 1000, + "rows_matched": 3, + "raw_row_keys_sample": [ + "Период", + "Регистратор", + "СчетДт", + "СчетКт", + "Сумма", + "Period", + "Registrator", + "AccountDt", + "AccountKt", + "Amount" + ], + "materialization_drop_reason": "none", + "account_token_raw": "51", + "account_token_normalized": "51", + "account_scope_fields_checked": [ + "account_dt", + "account_kt", + "registrator", + "analytics" + ], + "account_scope_match_strategy": "account_code_regex_plus_alias_map_v1", + "account_scope_drop_reason": "not_applicable", + "runtime_readiness": "LIVE_QUERYABLE_WITH_LIMITS", + "limited_reason_category": null, + "response_type": "FACTUAL_LIST", + "execution_lane": "address_query", + "llm_decomposition_applied": true, + "llm_decomposition_attempted": true, + "llm_provider_used": "local", + "llm_decomposition_trace_id": "qYOcsFEcVK0bTb", + "llm_decomposition_effective_message": "Показать банковские операции (счета 51, 60, 62) связанные с договором 24/15.", + "llm_decomposition_reason": "normalized_fragment_applied", + "fallback_rule_hit": null, + "sanitized_user_message": "покажи банковские операции по договору 24/15", + "tool_gate_decision": "run_address_lane", + "tool_gate_reason": "address_mode_classifier_detected", + "answer_structure_v11": null, + "investigation_state_snapshot": null, + "normalized": null, + "normalizer_output": { + "trace_id": "qYOcsFEcVK0bTb", + "prompt_version": "normalizer_v2_0_2", + "applied": true, + "effective_message": "Показать банковские операции (счета 51, 60, 62) связанные с договором 24/15." + } + }, + "error_code": null, + "error_message": null + }, + { + "index": 22, + "id": "F022", + "question": "а теперь открытые позиции по нему", + "session": "chain_contract_e", + "session_id": "asst-2026-04-02_Address_Followup_Context_Chains_2026-04-02_13-47-Run1-chain_contract_e", + "status_code": 200, + "ok": true, + "elapsed_ms": 1068, + "reply_type": "factual", + "trace_id": "address-8Lye0AythS", + "assistant_reply": "Собран список банковских операций по договору (live address lane).\nСтрок отобрано: 2.\n1. 2020-10-15T13:34:53Z | Списание с расчетного счета 00000000246 от 15.10.2020 13:34:53 | 66.02 / 51 | 30819.47\n2. 2020-10-15T13:34:19Z | Списание с расчетного счета 00000000245 от 15.10.2020 13:34:19 | 66.01 / 51 | 134206.53", + "assistant_reply_first_line": "Собран список банковских операций по договору (live address lane).", + "expected_intent": "open_items_by_counterparty_or_contract", + "actual_intent": "bank_operations_by_contract", + "intent_match": false, + "expected_mode": "address_query", + "actual_mode": "address_query", + "mode_match": true, + "expected_reply_type": null, + "reply_match": true, + "semantic_pass": false, + "route_pass": false, + "route_health": "ok_or_factual", + "strict_policy": "route", + "strict_pass": false, + "selected_recipe": "address_bank_operations_by_contract_v1", + "missing_required_filters": [], + "match_failure_stage": "none", + "match_failure_reason": null, + "rows_fetched": 1000, + "rows_matched": 2, + "mcp_call_status": "matched_non_empty", + "limited_reason_category": null, + "llm_decomposition_applied": false, + "llm_decomposition_reason": "not_address_like", + "fallback_rule_hit": null, + "debug_payload": { + "trace_id": "address-8Lye0AythS", + "prompt_version": "address_query_runtime_v1", + "schema_version": "address_query_runtime_v1", + "fallback_type": "none", + "route_summary": null, + "fragments": [], + "requirements_extracted": [], + "coverage_report": { + "requirements_total": 0, + "requirements_covered": 0, + "requirements_uncovered": [], + "requirements_partially_covered": [], + "clarification_needed_for": [], + "out_of_scope_requirements": [] + }, + "routes": [], + "retrieval_status": [], + "retrieval_results": [], + "answer_grounding_check": { + "status": "grounded", + "route_subject_match": true, + "missing_requirements": [], + "reasons": [ + "no_address_or_deep_signal", + "address_mode_from_followup_context", + "shape_not_detected", + "intent_not_supported_in_v1", + "intent_from_followup_context", + "contract_from_followup_context", + "address_followup_context_applied" + ], + "why_included_summary": [], + "selection_reason_summary": [] + }, + "dropped_intent_segments": [], + "detected_mode": "address_query", + "detected_mode_confidence": "medium", + "query_shape": "UNKNOWN", + "query_shape_confidence": "low", + "detected_intent": "bank_operations_by_contract", + "detected_intent_confidence": "low", + "extracted_filters": { + "sort": "period_desc", + "limit": 20, + "contract": "24/15" + }, + "missing_required_filters": [], + "selected_recipe": "address_bank_operations_by_contract_v1", + "mcp_call_status_legacy": "matched_non_empty", + "account_scope_mode": "preferred", + "account_scope_fallback_applied": false, + "anchor_type": "contract", + "anchor_value_raw": "24/15", + "anchor_value_resolved": "24/15", + "resolver_confidence": "medium", + "ambiguity_count": 0, + "match_failure_stage": "none", + "match_failure_reason": null, + "mcp_call_status": "matched_non_empty", + "rows_fetched": 1000, + "raw_rows_received": 1000, + "rows_after_account_scope": 341, + "rows_after_recipe_filter": 2, + "rows_materialized": 341, + "rows_matched": 2, + "raw_row_keys_sample": [ + "Период", + "Регистратор", + "СчетДт", + "СчетКт", + "Сумма", + "Period", + "Registrator", + "AccountDt", + "AccountKt", + "Amount" + ], + "materialization_drop_reason": "none", + "account_token_raw": null, + "account_token_normalized": null, + "account_scope_fields_checked": [ + "account_dt", + "account_kt", + "registrator", + "analytics" + ], + "account_scope_match_strategy": "account_code_regex_plus_alias_map_v1", + "account_scope_drop_reason": "not_applicable", + "runtime_readiness": "LIVE_QUERYABLE_WITH_LIMITS", + "limited_reason_category": null, + "response_type": "FACTUAL_LIST", + "execution_lane": "address_query", + "llm_decomposition_applied": false, + "llm_decomposition_attempted": false, + "llm_provider_used": "local", + "llm_decomposition_trace_id": null, + "llm_decomposition_effective_message": "а теперь открытые позиции по нему", + "llm_decomposition_reason": "not_address_like", + "fallback_rule_hit": null, + "sanitized_user_message": "а теперь открытые позиции по нему", + "tool_gate_decision": "run_address_lane", + "tool_gate_reason": "followup_context_detected", + "answer_structure_v11": null, + "investigation_state_snapshot": null, + "normalized": null, + "normalizer_output": null + }, + "error_code": null, + "error_message": null + }, + { + "index": 23, + "id": "F023", + "question": "а теперь на 2020-12", + "session": "chain_contract_e", + "session_id": "asst-2026-04-02_Address_Followup_Context_Chains_2026-04-02_13-47-Run1-chain_contract_e", + "status_code": 200, + "ok": true, + "elapsed_ms": 2983, + "reply_type": "partial_coverage", + "trace_id": "address-zyTvZBdAS3", + "assistant_reply": "В live-данных по текущему фильтру записи не найдены.\nПричина: по указанному якорю и фильтрам в live-выборке нет строк.\nЧто нужно уточнить: уточните период или снимите часть фильтров.", + "assistant_reply_first_line": "В live-данных по текущему фильтру записи не найдены.", + "expected_intent": "open_items_by_counterparty_or_contract", + "actual_intent": "bank_operations_by_contract", + "intent_match": false, + "expected_mode": "address_query", + "actual_mode": "address_query", + "mode_match": true, + "expected_reply_type": null, + "reply_match": true, + "semantic_pass": false, + "route_pass": false, + "route_health": "likely_blocked_route", + "strict_policy": "route", + "strict_pass": false, + "selected_recipe": "address_bank_operations_by_contract_v1", + "missing_required_filters": [], + "match_failure_stage": "materialized_but_not_anchor_matched", + "match_failure_reason": "contract_anchor_not_matched_in_materialized_rows", + "rows_fetched": 20, + "rows_matched": 0, + "mcp_call_status": "materialized_but_not_anchor_matched", + "limited_reason_category": "empty_match", + "llm_decomposition_applied": false, + "llm_decomposition_reason": "not_address_like", + "fallback_rule_hit": null, + "debug_payload": { + "trace_id": "address-zyTvZBdAS3", + "prompt_version": "address_query_runtime_v1", + "schema_version": "address_query_runtime_v1", + "fallback_type": "partial", + "route_summary": null, + "fragments": [], + "requirements_extracted": [], + "coverage_report": { + "requirements_total": 0, + "requirements_covered": 0, + "requirements_uncovered": [], + "requirements_partially_covered": [], + "clarification_needed_for": [], + "out_of_scope_requirements": [] + }, + "routes": [], + "retrieval_status": [], + "retrieval_results": [], + "answer_grounding_check": { + "status": "partial", + "route_subject_match": true, + "missing_requirements": [], + "reasons": [ + "no_address_or_deep_signal", + "address_mode_from_followup_context", + "shape_not_detected", + "intent_not_supported_in_v1", + "intent_from_followup_context", + "contract_from_followup_context", + "address_followup_context_applied" + ], + "why_included_summary": [], + "selection_reason_summary": [] + }, + "dropped_intent_segments": [], + "detected_mode": "address_query", + "detected_mode_confidence": "medium", + "query_shape": "UNKNOWN", + "query_shape_confidence": "low", + "detected_intent": "bank_operations_by_contract", + "detected_intent_confidence": "low", + "extracted_filters": { + "sort": "period_desc", + "limit": 20, + "period_from": "2020-12-01", + "period_to": "2020-12-31", + "contract": "24/15" + }, + "missing_required_filters": [], + "selected_recipe": "address_bank_operations_by_contract_v1", + "mcp_call_status_legacy": "materialized_but_not_matched", + "account_scope_mode": "preferred", + "account_scope_fallback_applied": true, + "anchor_type": "contract", + "anchor_value_raw": "24/15", + "anchor_value_resolved": "24/15", + "resolver_confidence": "medium", + "ambiguity_count": 0, + "match_failure_stage": "materialized_but_not_anchor_matched", + "match_failure_reason": "contract_anchor_not_matched_in_materialized_rows", + "mcp_call_status": "materialized_but_not_anchor_matched", + "rows_fetched": 20, + "raw_rows_received": 20, + "rows_after_account_scope": 20, + "rows_after_recipe_filter": 0, + "rows_materialized": 20, + "rows_matched": 0, + "raw_row_keys_sample": [ + "Период", + "Регистратор", + "СчетДт", + "СчетКт", + "Сумма", + "Period", + "Registrator", + "AccountDt", + "AccountKt", + "Amount" + ], + "materialization_drop_reason": "none", + "account_token_raw": null, + "account_token_normalized": null, + "account_scope_fields_checked": [ + "account_dt", + "account_kt", + "registrator", + "analytics" + ], + "account_scope_match_strategy": "account_code_regex_plus_alias_map_v1", + "account_scope_drop_reason": "not_applicable", + "runtime_readiness": "LIVE_QUERYABLE_WITH_LIMITS", + "limited_reason_category": "empty_match", + "response_type": "LIMITED_WITH_REASON", + "execution_lane": "address_query", + "llm_decomposition_applied": false, + "llm_decomposition_attempted": false, + "llm_provider_used": "local", + "llm_decomposition_trace_id": null, + "llm_decomposition_effective_message": "а теперь на 2020-12", + "llm_decomposition_reason": "not_address_like", + "fallback_rule_hit": null, + "sanitized_user_message": "а теперь на 2020-12", + "tool_gate_decision": "run_address_lane", + "tool_gate_reason": "followup_context_detected", + "answer_structure_v11": null, + "investigation_state_snapshot": null, + "normalized": null, + "normalizer_output": null + }, + "error_code": null, + "error_message": null + }, + { + "index": 24, + "id": "F024", + "question": "а по счету 51 на ту же дату", + "session": "chain_contract_e", + "session_id": "asst-2026-04-02_Address_Followup_Context_Chains_2026-04-02_13-47-Run1-chain_contract_e", + "status_code": 200, + "ok": true, + "elapsed_ms": 4934, + "reply_type": "factual", + "trace_id": "address-70rrtqVzUe", + "assistant_reply": "Адресный срез по счету собран (по движениям live MCP).\nСтрок отобрано: 20.\nСумма по отобранным движениям: 3925635.78.\n1. 2020-12-30T12:00:00Z | Поступление на расчетный счет 00000000044 от 30.12.2020 12:00:00 | 51 / 62.02 | 3248300\n2. 2020-12-25T12:00:04Z | Списание с расчетного счета 00000000299 от 25.12.2020 12:00:04 | 91.02 / 51 | 179.78\n3. 2020-12-25T12:00:03Z | Списание с расчетного счета 00000000298 от 25.12.2020 12:00:03 | 68.01.1 / 51 | 9945\n4. 2020-12-25T12:00:02Z | Списание с расчетного счета 00000000297 от 25.12.2020 12:00:02 | 70 / 51 | 18800", + "assistant_reply_first_line": "Адресный срез по счету собран (по движениям live MCP).", + "expected_intent": "account_balance_snapshot", + "actual_intent": "account_balance_snapshot", + "intent_match": true, + "expected_mode": "address_query", + "actual_mode": "address_query", + "mode_match": true, + "expected_reply_type": null, + "reply_match": true, + "semantic_pass": true, + "route_pass": true, + "route_health": "ok_or_factual", + "strict_policy": "route", + "strict_pass": true, + "selected_recipe": "address_movements_account_snapshot_v1", + "missing_required_filters": [], + "match_failure_stage": "none", + "match_failure_reason": null, + "rows_fetched": 20, + "rows_matched": 20, + "mcp_call_status": "matched_non_empty", + "limited_reason_category": null, + "llm_decomposition_applied": true, + "llm_decomposition_reason": "normalized_fragment_applied", + "fallback_rule_hit": null, + "debug_payload": { + "trace_id": "address-70rrtqVzUe", + "prompt_version": "address_query_runtime_v1", + "schema_version": "address_query_runtime_v1", + "fallback_type": "none", + "route_summary": null, + "fragments": [], + "requirements_extracted": [], + "coverage_report": { + "requirements_total": 0, + "requirements_covered": 0, + "requirements_uncovered": [], + "requirements_partially_covered": [], + "clarification_needed_for": [], + "out_of_scope_requirements": [] + }, + "routes": [], + "retrieval_status": [], + "retrieval_results": [], + "answer_grounding_check": { + "status": "grounded", + "route_subject_match": true, + "missing_requirements": [], + "reasons": [ + "address_action_detected", + "address_entity_detected", + "shape_not_detected", + "account_balance_signal_detected", + "as_of_date_from_followup_context", + "period_from_followup_context", + "address_followup_context_applied" + ], + "why_included_summary": [], + "selection_reason_summary": [] + }, + "dropped_intent_segments": [], + "detected_mode": "address_query", + "detected_mode_confidence": "high", + "query_shape": "UNKNOWN", + "query_shape_confidence": "low", + "detected_intent": "account_balance_snapshot", + "detected_intent_confidence": "high", + "extracted_filters": { + "sort": "period_desc", + "limit": 20, + "account": "51", + "as_of_date": "2020-12-31", + "period_from": "2020-12-01", + "period_to": "2020-12-31" + }, + "missing_required_filters": [], + "selected_recipe": "address_movements_account_snapshot_v1", + "mcp_call_status_legacy": "matched_non_empty", + "account_scope_mode": "strict", + "account_scope_fallback_applied": false, + "anchor_type": "account", + "anchor_value_raw": "51", + "anchor_value_resolved": "51", + "resolver_confidence": "high", + "ambiguity_count": 0, + "match_failure_stage": "none", + "match_failure_reason": null, + "mcp_call_status": "matched_non_empty", + "rows_fetched": 20, + "raw_rows_received": 20, + "rows_after_account_scope": 20, + "rows_after_recipe_filter": 20, + "rows_materialized": 20, + "rows_matched": 20, + "raw_row_keys_sample": [ + "Период", + "Регистратор", + "СчетДт", + "СчетКт", + "Сумма", + "Period", + "Registrator", + "AccountDt", + "AccountKt", + "Amount" + ], + "materialization_drop_reason": "none", + "account_token_raw": "51", + "account_token_normalized": "51", + "account_scope_fields_checked": [ + "account_dt", + "account_kt", + "registrator", + "analytics" + ], + "account_scope_match_strategy": "account_code_regex_plus_alias_map_v1", + "account_scope_drop_reason": "rows_remaining_after_scope_filter", + "runtime_readiness": "LIVE_QUERYABLE_WITH_LIMITS", + "limited_reason_category": null, + "response_type": "FACTUAL_SUMMARY", + "execution_lane": "address_query", + "llm_decomposition_applied": true, + "llm_decomposition_attempted": true, + "llm_provider_used": "local", + "llm_decomposition_trace_id": "OgVal0jmiBcIEs", + "llm_decomposition_effective_message": "показать записи по счету 51 на ту же дату", + "llm_decomposition_reason": "normalized_fragment_applied", + "fallback_rule_hit": null, + "sanitized_user_message": "а по счету 51 на ту же дату", + "tool_gate_decision": "run_address_lane", + "tool_gate_reason": "address_mode_classifier_detected", + "answer_structure_v11": null, + "investigation_state_snapshot": null, + "normalized": null, + "normalizer_output": { + "trace_id": "OgVal0jmiBcIEs", + "prompt_version": "normalizer_v2_0_2", + "applied": true, + "effective_message": "показать записи по счету 51 на ту же дату" + } + }, + "error_code": null, + "error_message": null + }, + { + "index": 25, + "id": "F025", + "question": "а документы по этому же договору за тот же период", + "session": "chain_contract_e", + "session_id": "asst-2026-04-02_Address_Followup_Context_Chains_2026-04-02_13-47-Run1-chain_contract_e", + "status_code": 200, + "ok": true, + "elapsed_ms": 7315, + "reply_type": "factual", + "trace_id": "address-gitVeaexA6", + "assistant_reply": "Точный якорь не подтвердился в текущем окне live-данных; показаны ближайшие доступные документы/операции по выбранному типу.\nСобран список документов по договору (live address lane).\nСтрок отобрано: 20.\n1. 2020-12-31T23:59:59Z | Формирование записей книги покупок 00000000004 от 31.12.2020 23:59:59 | 68.02 / 19.09 | 127216.46\n2. 2020-12-31T23:59:59Z | Формирование записей книги покупок 00000000004 от 31.12.2020 23:59:59 | 68.02 / 19.09 | 235682.42\n3. 2020-12-31T23:59:59Z | Формирование записей книги покупок 00000000004 от 31.12.2020 23:59:59 | 68.02 / 19.09 | 337318.8\n4. 2020-12-31T23:59:59Z | Регламентная операция 00000000097 от 31.12.2020 23:59:59 | 91.09 / 91.02 | 10615989.53\n5. 2020-12-31T23:59:59Z | Регламентная операция 00000000097 от 31.12.2020 23:59:59 | 91.01 / 91.09 | 1614344.98\n6. 2020-12-31T23:59:59Z | Регламентная операция 00000000097 от 31.12.2020 23:59:59 | 90.09 / 90.02.1 | 6430415.34\n7. 2020-12-31T23:59:59Z | Регламентная операция 00000000097 от 31.12.2020 23:59:59 | 90.09 / 90.03 | 2002138.93\n8. 2020-12-31T23:59:59Z | Регламентная операция 00000000097 от 31.12.2020 23:59:59 | 90.09 / 90.07.1 | 1715450.75\n9. 2020-12-31T23:59:59Z | Регламентная операция 00000000097 от 31.12.2020 23:59:59 | 90.01.1 / 90.09 | 12012833.72\n10. 2020-12-31T23:59:59Z | Регламентная операция 00000000097 от 31.12.2020 23:59:59 | 84.02 / 99.01.1 | 7136815.85\n11. 2020-12-31T23:59:59Z | Регламентная операция 00000000095 от 31.12.2020 23:59:59 | 99.01.1 / 91.09 | 121674.74\n12. 2020-12-31T23:59:59Z | Регламентная операция 00000000095 от 31.12.2020 23:59:59 | 99.01.1 / 90.09 | 130479.52\n13. 2020-12-31T23:59:59Z | Регламентная операция 00000000094 от 31.12.2020 23:59:59 | 90.07.1 / 44.01 | 5000\n14. 2020-12-31T23:59:59Z | Регламентная операция 00000000094 от 31.12.2020 23:59:59 | 90.07.1 / 44.01 | 1166.67\n15. 2020-12-31T23:59:59Z | Регламентная операция 00000000094 от 31.12.2020 23:59:59 | 90.07.1 / 44.01 | 1215.28\n16. 2020-12-31T23:59:59Z | Регламентная операция 00000000094 от 31.12.2020 23:59:59 | 90.07.1 / 44.01 | 2489.76\n17. 2020-12-31T23:59:59Z | Регламентная операция 00000000094 от 31.12.2020 23:59:59 | 90.07.1 / 44.01 | 15267\n18. 2020-12-31T23:59:59Z | Регламентная операция 00000000094 от 31.12.2020 23:59:59 | 90.07.1 / 44.01 | 23004.18\n19. 2020-12-31T23:59:59Z | Регламентная операция 00000000094 от 31.12.2020 23:59:59 | 90.07.1 / 44.01 | 76550\n20. 2020-12-31T23:59:59Z | Регламентная операция 00000000094 от 31.12.2020 23:59:59 | 90.07.1 / 44.01 | 5786.63", + "assistant_reply_first_line": "Точный якорь не подтвердился в текущем окне live-данных; показаны ближайшие доступные документы/операции по выбранному типу.", + "expected_intent": "list_documents_by_contract", + "actual_intent": "list_documents_by_contract", + "intent_match": true, + "expected_mode": "address_query", + "actual_mode": "address_query", + "mode_match": true, + "expected_reply_type": null, + "reply_match": true, + "semantic_pass": true, + "route_pass": true, + "route_health": "ok_or_factual", + "strict_policy": "route", + "strict_pass": true, + "selected_recipe": "address_documents_by_contract_v1", + "missing_required_filters": [], + "match_failure_stage": "materialized_but_not_anchor_matched", + "match_failure_reason": "contract_anchor_not_matched_in_materialized_rows", + "rows_fetched": 20, + "rows_matched": 20, + "mcp_call_status": "matched_non_empty", + "limited_reason_category": null, + "llm_decomposition_applied": true, + "llm_decomposition_reason": "normalized_fragment_applied", + "fallback_rule_hit": null, + "debug_payload": { + "trace_id": "address-gitVeaexA6", + "prompt_version": "address_query_runtime_v1", + "schema_version": "address_query_runtime_v1", + "fallback_type": "none", + "route_summary": null, + "fragments": [], + "requirements_extracted": [], + "coverage_report": { + "requirements_total": 0, + "requirements_covered": 0, + "requirements_uncovered": [], + "requirements_partially_covered": [], + "clarification_needed_for": [], + "out_of_scope_requirements": [] + }, + "routes": [], + "retrieval_status": [], + "retrieval_results": [], + "answer_grounding_check": { + "status": "grounded", + "route_subject_match": true, + "missing_requirements": [], + "reasons": [ + "address_entity_detected", + "document_list_signal_detected", + "documents_by_contract_signal_detected", + "period_from_followup_context", + "address_followup_context_applied", + "anchor_not_matched_fallback_rows" + ], + "why_included_summary": [], + "selection_reason_summary": [] + }, + "dropped_intent_segments": [], + "detected_mode": "address_query", + "detected_mode_confidence": "medium", + "query_shape": "DOCUMENT_LIST", + "query_shape_confidence": "medium", + "detected_intent": "list_documents_by_contract", + "detected_intent_confidence": "medium", + "extracted_filters": { + "sort": "period_desc", + "limit": 20, + "contract": "за указанный период", + "period_from": "2020-12-01", + "period_to": "2020-12-31" + }, + "missing_required_filters": [], + "selected_recipe": "address_documents_by_contract_v1", + "mcp_call_status_legacy": "matched_non_empty", + "account_scope_mode": "preferred", + "account_scope_fallback_applied": true, + "anchor_type": "contract", + "anchor_value_raw": "за указанный период", + "anchor_value_resolved": "за указанный период", + "resolver_confidence": "medium", + "ambiguity_count": 0, + "match_failure_stage": "materialized_but_not_anchor_matched", + "match_failure_reason": "contract_anchor_not_matched_in_materialized_rows", + "mcp_call_status": "matched_non_empty", + "rows_fetched": 20, + "raw_rows_received": 20, + "rows_after_account_scope": 20, + "rows_after_recipe_filter": 0, + "rows_materialized": 20, + "rows_matched": 20, + "raw_row_keys_sample": [ + "Период", + "Регистратор", + "СчетДт", + "СчетКт", + "Сумма", + "Period", + "Registrator", + "AccountDt", + "AccountKt", + "Amount" + ], + "materialization_drop_reason": "none", + "account_token_raw": null, + "account_token_normalized": null, + "account_scope_fields_checked": [ + "account_dt", + "account_kt", + "registrator", + "analytics" + ], + "account_scope_match_strategy": "account_code_regex_plus_alias_map_v1", + "account_scope_drop_reason": "not_applicable", + "runtime_readiness": "LIVE_QUERYABLE_WITH_LIMITS", + "limited_reason_category": null, + "response_type": "FACTUAL_LIST", + "execution_lane": "address_query", + "llm_decomposition_applied": true, + "llm_decomposition_attempted": true, + "llm_provider_used": "local", + "llm_decomposition_trace_id": "gYuZoL4T3T7Lyl", + "llm_decomposition_effective_message": "документы по договору за указанный период", + "llm_decomposition_reason": "normalized_fragment_applied", + "fallback_rule_hit": null, + "sanitized_user_message": "а документы по этому же договору за тот же период", + "tool_gate_decision": "run_address_lane", + "tool_gate_reason": "address_mode_classifier_detected", + "answer_structure_v11": null, + "investigation_state_snapshot": null, + "normalized": null, + "normalizer_output": { + "trace_id": "gYuZoL4T3T7Lyl", + "prompt_version": "normalizer_v2_0_2", + "applied": true, + "effective_message": "документы по договору за указанный период" + } + }, + "error_code": null, + "error_message": null + } + ] +} diff --git a/docs/ADDRESS/runs/2026-04-02_Address_Followup_Context_Chains_2026-04-02_13-47-Run1/response_audit.md b/docs/ADDRESS/runs/2026-04-02_Address_Followup_Context_Chains_2026-04-02_13-47-Run1/response_audit.md new file mode 100644 index 0000000..9988aef --- /dev/null +++ b/docs/ADDRESS/runs/2026-04-02_Address_Followup_Context_Chains_2026-04-02_13-47-Run1/response_audit.md @@ -0,0 +1,29 @@ +# Response Audit: 2026-04-02_Address_Followup_Context_Chains_2026-04-02_13-47-Run1 + +| id | strict | route_health | reply_type | intent | limited_reason | question | assistant_first_line | +|---|---|---|---|---|---|---|---| +| F001 | True | ok_or_factual | factual | list_documents_by_counterparty | None | Покажи документы по СВК за 2020 | Собран список документов по контрагенту (live address lane). | +| F002 | True | ok_or_factual | factual | list_documents_by_counterparty | None | а теперь только за май 2020 | Точный якорь не подтвердился в текущем окне live-данных; показаны ближайшие доступные документы/операции по выбранному типу. | +| F003 | True | ok_or_factual | factual | account_balance_snapshot | None | а по счету 60.01 на ту же дату | Адресный срез по счету собран (по движениям live MCP). | +| F004 | True | ok_or_factual | factual | account_balance_snapshot | None | а на ту же дату по 62.01 | Адресный срез по счету собран (по движениям live MCP). | +| F005 | True | ok_or_factual | factual | documents_forming_balance | None | раскрой остаток по 62.01 документами на ту же дату | Собран drilldown документов, формирующих остаток по счету на указанную дату. | +| F006 | True | ok_or_factual | factual | bank_operations_by_counterparty | None | Покажи банковские операции по СВК за 2020 | Точный якорь не подтвердился в текущем окне live-данных; показаны ближайшие доступные документы/операции по выбранному типу. | +| F007 | True | ok_or_factual | factual | bank_operations_by_counterparty | None | а теперь только ноябрь 2020 | Точный якорь не подтвердился в текущем окне live-данных; показаны ближайшие доступные документы/операции по выбранному типу. | +| F008 | True | ok_or_factual | factual | list_documents_by_counterparty | None | а теперь документы по нему | Точный якорь не подтвердился в текущем окне live-данных; показаны ближайшие доступные документы/операции по выбранному типу. | +| F009 | True | ok_or_factual | factual | account_balance_snapshot | None | и остаток по 51 на ту же дату | Адресный срез по счету собран (по движениям live MCP). | +| F010 | True | ok_or_factual | factual | account_balance_snapshot | None | а теперь только май 2020 | Адресный срез по счету собран (по движениям live MCP). | +| F011 | True | partial_non_blocking | partial_coverage | account_balance_snapshot | empty_match | Покажи сальдо по счету 60 на 2020-12-31 | В live-данных по текущему фильтру записи не найдены. | +| F012 | True | ok_or_factual | factual | account_balance_snapshot | None | а теперь только май 2020 | Адресный срез по счету собран (по движениям live MCP). | +| F013 | True | ok_or_factual | factual | account_balance_snapshot | None | а на ту же дату по 62 | Адресный срез по счету собран (по движениям live MCP). | +| F014 | False | ok_or_factual | factual | list_documents_by_counterparty | None | раскрой 62 документами на ту же дату | Точный якорь не подтвердился в текущем окне live-данных; показаны ближайшие доступные документы/операции по выбранному типу. | +| F015 | False | ok_or_factual | factual | list_documents_by_counterparty | None | вернись на 2020-12-31 по 60 | Точный якорь не подтвердился в текущем окне live-данных; показаны ближайшие доступные документы/операции по выбранному типу. | +| F016 | True | ok_or_factual | factual | list_documents_by_contract | None | Покажи документы по договору 24/15 за 2020 | По окну 2020-01-01..2020-12-31 строк не найдено; показаны ближайшие доступные данные 2020-10-15..2020-10-15. | +| F017 | False | ok_or_factual | factual | bank_operations_by_counterparty | None | а теперь банковские операции | Точный якорь не подтвердился в текущем окне live-данных; показаны ближайшие доступные документы/операции по выбранному типу. | +| F018 | False | ok_or_factual | factual | bank_operations_by_counterparty | None | а теперь только май 2020 | Точный якорь не подтвердился в текущем окне live-данных; показаны ближайшие доступные документы/операции по выбранному типу. | +| F019 | False | ok_or_factual | factual | bank_operations_by_counterparty | None | есть ли открытые позиции на ту же дату | Точный якорь не подтвердился в текущем окне live-данных; показаны ближайшие доступные документы/операции по выбранному типу. | +| F020 | False | blocked_missing_anchor | partial_coverage | list_documents_by_contract | missing_anchor | покажи документы по этому же договору | Для точного адресного поиска не хватает обязательного якоря. | +| F021 | True | ok_or_factual | factual | bank_operations_by_contract | None | Покажи банковские операции по договору 24/15 | Собран список банковских операций по договору (live address lane). | +| F022 | False | ok_or_factual | factual | bank_operations_by_contract | None | а теперь открытые позиции по нему | Собран список банковских операций по договору (live address lane). | +| F023 | False | likely_blocked_route | partial_coverage | bank_operations_by_contract | empty_match | а теперь на 2020-12 | В live-данных по текущему фильтру записи не найдены. | +| F024 | True | ok_or_factual | factual | account_balance_snapshot | None | а по счету 51 на ту же дату | Адресный срез по счету собран (по движениям live MCP). | +| F025 | True | ok_or_factual | factual | list_documents_by_contract | None | а документы по этому же договору за тот же период | Точный якорь не подтвердился в текущем окне live-данных; показаны ближайшие доступные документы/операции по выбранному типу. | diff --git a/docs/ADDRESS/runs/2026-04-02_Address_Followup_Context_Chains_2026-04-02_13-47-Run1/run_summary.json b/docs/ADDRESS/runs/2026-04-02_Address_Followup_Context_Chains_2026-04-02_13-47-Run1/run_summary.json new file mode 100644 index 0000000..b6e5213 --- /dev/null +++ b/docs/ADDRESS/runs/2026-04-02_Address_Followup_Context_Chains_2026-04-02_13-47-Run1/run_summary.json @@ -0,0 +1,59 @@ +{ + "run_id": "2026-04-02_Address_Followup_Context_Chains_2026-04-02_13-47-Run1", + "generated_at": "2026-04-02T13:49:07", + "source_questions_file": "X:\\1C\\NDC_1C\\docs\\ADDRESS\\question_sets\\address_followup_context_chains_2026-04-02.json", + "backend_url": "http://127.0.0.1:8787/api/assistant/message", + "llm_provider": "local", + "llm_model": "qwen2.5-14b-instruct-1m", + "llm_base_url": "http://127.0.0.1:1234", + "strict_policy": "route", + "totals": { + "questions_total": 25, + "ok_200_count": 25, + "semantic_pass_count": 18, + "semantic_pass_rate": 0.72, + "route_pass_count": 17, + "route_pass_rate": 0.68, + "strict_pass_count": 17, + "strict_pass_rate": 0.68, + "factual_count": 22, + "partial_coverage_count": 3, + "clarification_required_count": 0, + "http_error_count": 0, + "llm_decomposition_applied_count": 12, + "avg_elapsed_ms": 4581.7 + }, + "distributions": { + "reply_type": { + "factual": 22, + "partial_coverage": 3 + }, + "actual_intent": { + "list_documents_by_counterparty": 5, + "account_balance_snapshot": 8, + "documents_forming_balance": 1, + "bank_operations_by_counterparty": 5, + "list_documents_by_contract": 3, + "bank_operations_by_contract": 3 + }, + "actual_mode": { + "address_query": 25 + }, + "mcp_call_status": { + "matched_non_empty": 22, + "no_raw_rows": 1, + "skipped": 1, + "materialized_but_not_anchor_matched": 1 + }, + "limited_reason_category": { + "empty_match": 2, + "missing_anchor": 1 + }, + "route_health": { + "ok_or_factual": 22, + "partial_non_blocking": 1, + "blocked_missing_anchor": 1, + "likely_blocked_route": 1 + } + } +} diff --git a/docs/ADDRESS/runs/2026-04-02_Address_Followup_Context_Chains_2026-04-02_13-47-Run2/README.md b/docs/ADDRESS/runs/2026-04-02_Address_Followup_Context_Chains_2026-04-02_13-47-Run2/README.md new file mode 100644 index 0000000..41f33a5 --- /dev/null +++ b/docs/ADDRESS/runs/2026-04-02_Address_Followup_Context_Chains_2026-04-02_13-47-Run2/README.md @@ -0,0 +1,28 @@ +# 2026-04-02_Address_Followup_Context_Chains_2026-04-02_13-47-Run2 + +Generated at: 2026-04-02T13:58:22 +Questions file: X:\1C\NDC_1C\docs\ADDRESS\question_sets\address_followup_context_chains_2026-04-02.json +Backend URL: http://127.0.0.1:8787/api/assistant/message +LLM: local / qwen2.5-14b-instruct-1m @ http://127.0.0.1:1234 +Strict policy: route + +## Totals +- questions_total: 25 +- ok_200_count: 25 +- semantic_pass_count: 25 +- semantic_pass_rate: 1.0 +- route_pass_count: 22 +- route_pass_rate: 0.88 +- strict_pass_count: 22 +- strict_pass_rate: 0.88 +- factual_count: 20 +- partial_coverage_count: 5 +- clarification_required_count: 0 +- http_error_count: 0 +- llm_decomposition_applied_count: 12 +- avg_elapsed_ms: 4528 + +## Files +- run_summary.json +- full_live_results.json +- failures_only.json diff --git a/docs/ADDRESS/runs/2026-04-02_Address_Followup_Context_Chains_2026-04-02_13-47-Run2/failures_only.json b/docs/ADDRESS/runs/2026-04-02_Address_Followup_Context_Chains_2026-04-02_13-47-Run2/failures_only.json new file mode 100644 index 0000000..bc9312d --- /dev/null +++ b/docs/ADDRESS/runs/2026-04-02_Address_Followup_Context_Chains_2026-04-02_13-47-Run2/failures_only.json @@ -0,0 +1,451 @@ +[ + { + "index": 19, + "id": "F019", + "question": "есть ли открытые позиции на ту же дату", + "session": "chain_contract_d", + "session_id": "asst-2026-04-02_Address_Followup_Context_Chains_2026-04-02_13-47-Run2-chain_contract_d", + "status_code": 200, + "ok": true, + "elapsed_ms": 1815, + "reply_type": "partial_coverage", + "trace_id": "address-v77kV-huBw", + "assistant_reply": "В live-данных по текущему фильтру записи не найдены.\nПричина: по указанному якорю и фильтрам в live-выборке нет строк.\nЧто нужно уточнить: уточните период или снимите часть фильтров.", + "assistant_reply_first_line": "В live-данных по текущему фильтру записи не найдены.", + "expected_intent": "open_items_by_counterparty_or_contract", + "actual_intent": "open_items_by_counterparty_or_contract", + "intent_match": true, + "expected_mode": "address_query", + "actual_mode": "address_query", + "mode_match": true, + "expected_reply_type": null, + "reply_match": true, + "semantic_pass": true, + "route_pass": false, + "route_health": "likely_blocked_route", + "strict_policy": "route", + "strict_pass": false, + "selected_recipe": "address_open_items_by_party_or_contract_v1", + "missing_required_filters": [], + "match_failure_stage": "materialized_but_not_anchor_matched", + "match_failure_reason": "contract_anchor_not_matched_in_materialized_rows", + "rows_fetched": 20, + "rows_matched": 0, + "mcp_call_status": "materialized_but_not_anchor_matched", + "limited_reason_category": "empty_match", + "llm_decomposition_applied": false, + "llm_decomposition_reason": "not_address_like", + "fallback_rule_hit": null, + "debug_payload": { + "trace_id": "address-v77kV-huBw", + "prompt_version": "address_query_runtime_v1", + "schema_version": "address_query_runtime_v1", + "fallback_type": "partial", + "route_summary": null, + "fragments": [], + "requirements_extracted": [], + "coverage_report": { + "requirements_total": 0, + "requirements_covered": 0, + "requirements_uncovered": [], + "requirements_partially_covered": [], + "clarification_needed_for": [], + "out_of_scope_requirements": [] + }, + "routes": [], + "retrieval_status": [], + "retrieval_results": [], + "answer_grounding_check": { + "status": "partial", + "route_subject_match": true, + "missing_requirements": [], + "reasons": [ + "no_address_or_deep_signal", + "address_mode_from_followup_context", + "verify_signal_detected", + "intent_not_supported_in_v1", + "open_items_from_followup_context", + "contract_from_followup_context", + "period_from_followup_context", + "address_followup_context_applied" + ], + "why_included_summary": [], + "selection_reason_summary": [] + }, + "dropped_intent_segments": [], + "detected_mode": "address_query", + "detected_mode_confidence": "medium", + "query_shape": "VERIFY_FACTUAL", + "query_shape_confidence": "medium", + "detected_intent": "open_items_by_counterparty_or_contract", + "detected_intent_confidence": "low", + "extracted_filters": { + "sort": "period_desc", + "limit": 20, + "contract": "24/15", + "period_from": "2020-05-01", + "period_to": "2020-05-31" + }, + "missing_required_filters": [], + "selected_recipe": "address_open_items_by_party_or_contract_v1", + "mcp_call_status_legacy": "materialized_but_not_matched", + "account_scope_mode": "preferred", + "account_scope_fallback_applied": true, + "anchor_type": "contract", + "anchor_value_raw": "24/15", + "anchor_value_resolved": "24/15", + "resolver_confidence": "medium", + "ambiguity_count": 0, + "match_failure_stage": "materialized_but_not_anchor_matched", + "match_failure_reason": "contract_anchor_not_matched_in_materialized_rows", + "mcp_call_status": "materialized_but_not_anchor_matched", + "rows_fetched": 20, + "raw_rows_received": 20, + "rows_after_account_scope": 20, + "rows_after_recipe_filter": 0, + "rows_materialized": 20, + "rows_matched": 0, + "raw_row_keys_sample": [ + "Период", + "Регистратор", + "СчетДт", + "СчетКт", + "Сумма", + "Period", + "Registrator", + "AccountDt", + "AccountKt", + "Amount" + ], + "materialization_drop_reason": "none", + "account_token_raw": null, + "account_token_normalized": null, + "account_scope_fields_checked": [ + "account_dt", + "account_kt", + "registrator", + "analytics" + ], + "account_scope_match_strategy": "account_code_regex_plus_alias_map_v1", + "account_scope_drop_reason": "not_applicable", + "runtime_readiness": "LIVE_QUERYABLE_WITH_LIMITS", + "limited_reason_category": "empty_match", + "response_type": "LIMITED_WITH_REASON", + "execution_lane": "address_query", + "llm_decomposition_applied": false, + "llm_decomposition_attempted": false, + "llm_provider_used": "local", + "llm_decomposition_trace_id": null, + "llm_decomposition_effective_message": "есть ли открытые позиции на ту же дату", + "llm_decomposition_reason": "not_address_like", + "fallback_rule_hit": null, + "sanitized_user_message": "есть ли открытые позиции на ту же дату", + "tool_gate_decision": "run_address_lane", + "tool_gate_reason": "followup_context_detected", + "answer_structure_v11": null, + "investigation_state_snapshot": null, + "normalized": null, + "normalizer_output": null + }, + "error_code": null, + "error_message": null + }, + { + "index": 22, + "id": "F022", + "question": "а теперь открытые позиции по нему", + "session": "chain_contract_e", + "session_id": "asst-2026-04-02_Address_Followup_Context_Chains_2026-04-02_13-47-Run2-chain_contract_e", + "status_code": 200, + "ok": true, + "elapsed_ms": 1996, + "reply_type": "partial_coverage", + "trace_id": "address-tqJJfMl2ex", + "assistant_reply": "В live-данных по текущему фильтру записи не найдены.\nПричина: по указанному якорю и фильтрам в live-выборке нет строк.\nЧто нужно уточнить: уточните период или снимите часть фильтров.", + "assistant_reply_first_line": "В live-данных по текущему фильтру записи не найдены.", + "expected_intent": "open_items_by_counterparty_or_contract", + "actual_intent": "open_items_by_counterparty_or_contract", + "intent_match": true, + "expected_mode": "address_query", + "actual_mode": "address_query", + "mode_match": true, + "expected_reply_type": null, + "reply_match": true, + "semantic_pass": true, + "route_pass": false, + "route_health": "likely_blocked_route", + "strict_policy": "route", + "strict_pass": false, + "selected_recipe": "address_open_items_by_party_or_contract_v1", + "missing_required_filters": [], + "match_failure_stage": "materialized_but_not_anchor_matched", + "match_failure_reason": "contract_anchor_not_matched_in_materialized_rows", + "rows_fetched": 20, + "rows_matched": 0, + "mcp_call_status": "materialized_but_not_anchor_matched", + "limited_reason_category": "empty_match", + "llm_decomposition_applied": false, + "llm_decomposition_reason": "not_address_like", + "fallback_rule_hit": null, + "debug_payload": { + "trace_id": "address-tqJJfMl2ex", + "prompt_version": "address_query_runtime_v1", + "schema_version": "address_query_runtime_v1", + "fallback_type": "partial", + "route_summary": null, + "fragments": [], + "requirements_extracted": [], + "coverage_report": { + "requirements_total": 0, + "requirements_covered": 0, + "requirements_uncovered": [], + "requirements_partially_covered": [], + "clarification_needed_for": [], + "out_of_scope_requirements": [] + }, + "routes": [], + "retrieval_status": [], + "retrieval_results": [], + "answer_grounding_check": { + "status": "partial", + "route_subject_match": true, + "missing_requirements": [], + "reasons": [ + "no_address_or_deep_signal", + "address_mode_from_followup_context", + "shape_not_detected", + "intent_not_supported_in_v1", + "open_items_from_followup_context", + "contract_from_followup_context", + "address_followup_context_applied" + ], + "why_included_summary": [], + "selection_reason_summary": [] + }, + "dropped_intent_segments": [], + "detected_mode": "address_query", + "detected_mode_confidence": "medium", + "query_shape": "UNKNOWN", + "query_shape_confidence": "low", + "detected_intent": "open_items_by_counterparty_or_contract", + "detected_intent_confidence": "low", + "extracted_filters": { + "sort": "period_desc", + "limit": 20, + "contract": "24/15" + }, + "missing_required_filters": [], + "selected_recipe": "address_open_items_by_party_or_contract_v1", + "mcp_call_status_legacy": "materialized_but_not_matched", + "account_scope_mode": "preferred", + "account_scope_fallback_applied": true, + "anchor_type": "contract", + "anchor_value_raw": "24/15", + "anchor_value_resolved": "24/15", + "resolver_confidence": "medium", + "ambiguity_count": 0, + "match_failure_stage": "materialized_but_not_anchor_matched", + "match_failure_reason": "contract_anchor_not_matched_in_materialized_rows", + "mcp_call_status": "materialized_but_not_anchor_matched", + "rows_fetched": 20, + "raw_rows_received": 20, + "rows_after_account_scope": 20, + "rows_after_recipe_filter": 0, + "rows_materialized": 20, + "rows_matched": 0, + "raw_row_keys_sample": [ + "Период", + "Регистратор", + "СчетДт", + "СчетКт", + "Сумма", + "Period", + "Registrator", + "AccountDt", + "AccountKt", + "Amount" + ], + "materialization_drop_reason": "none", + "account_token_raw": null, + "account_token_normalized": null, + "account_scope_fields_checked": [ + "account_dt", + "account_kt", + "registrator", + "analytics" + ], + "account_scope_match_strategy": "account_code_regex_plus_alias_map_v1", + "account_scope_drop_reason": "not_applicable", + "runtime_readiness": "LIVE_QUERYABLE_WITH_LIMITS", + "limited_reason_category": "empty_match", + "response_type": "LIMITED_WITH_REASON", + "execution_lane": "address_query", + "llm_decomposition_applied": false, + "llm_decomposition_attempted": false, + "llm_provider_used": "local", + "llm_decomposition_trace_id": null, + "llm_decomposition_effective_message": "а теперь открытые позиции по нему", + "llm_decomposition_reason": "not_address_like", + "fallback_rule_hit": null, + "sanitized_user_message": "а теперь открытые позиции по нему", + "tool_gate_decision": "run_address_lane", + "tool_gate_reason": "followup_context_detected", + "answer_structure_v11": null, + "investigation_state_snapshot": null, + "normalized": null, + "normalizer_output": null + }, + "error_code": null, + "error_message": null + }, + { + "index": 23, + "id": "F023", + "question": "а теперь на 2020-12", + "session": "chain_contract_e", + "session_id": "asst-2026-04-02_Address_Followup_Context_Chains_2026-04-02_13-47-Run2-chain_contract_e", + "status_code": 200, + "ok": true, + "elapsed_ms": 1879, + "reply_type": "partial_coverage", + "trace_id": "address-4l-R3VJrqp", + "assistant_reply": "В live-данных по текущему фильтру записи не найдены.\nПричина: по указанному якорю и фильтрам в live-выборке нет строк.\nЧто нужно уточнить: уточните период или снимите часть фильтров.", + "assistant_reply_first_line": "В live-данных по текущему фильтру записи не найдены.", + "expected_intent": "open_items_by_counterparty_or_contract", + "actual_intent": "open_items_by_counterparty_or_contract", + "intent_match": true, + "expected_mode": "address_query", + "actual_mode": "address_query", + "mode_match": true, + "expected_reply_type": null, + "reply_match": true, + "semantic_pass": true, + "route_pass": false, + "route_health": "likely_blocked_route", + "strict_policy": "route", + "strict_pass": false, + "selected_recipe": "address_open_items_by_party_or_contract_v1", + "missing_required_filters": [], + "match_failure_stage": "materialized_but_not_anchor_matched", + "match_failure_reason": "contract_anchor_not_matched_in_materialized_rows", + "rows_fetched": 20, + "rows_matched": 0, + "mcp_call_status": "materialized_but_not_anchor_matched", + "limited_reason_category": "empty_match", + "llm_decomposition_applied": false, + "llm_decomposition_reason": "not_address_like", + "fallback_rule_hit": null, + "debug_payload": { + "trace_id": "address-4l-R3VJrqp", + "prompt_version": "address_query_runtime_v1", + "schema_version": "address_query_runtime_v1", + "fallback_type": "partial", + "route_summary": null, + "fragments": [], + "requirements_extracted": [], + "coverage_report": { + "requirements_total": 0, + "requirements_covered": 0, + "requirements_uncovered": [], + "requirements_partially_covered": [], + "clarification_needed_for": [], + "out_of_scope_requirements": [] + }, + "routes": [], + "retrieval_status": [], + "retrieval_results": [], + "answer_grounding_check": { + "status": "partial", + "route_subject_match": true, + "missing_requirements": [], + "reasons": [ + "no_address_or_deep_signal", + "address_mode_from_followup_context", + "shape_not_detected", + "intent_not_supported_in_v1", + "intent_from_followup_context", + "contract_from_followup_context", + "address_followup_context_applied" + ], + "why_included_summary": [], + "selection_reason_summary": [] + }, + "dropped_intent_segments": [], + "detected_mode": "address_query", + "detected_mode_confidence": "medium", + "query_shape": "UNKNOWN", + "query_shape_confidence": "low", + "detected_intent": "open_items_by_counterparty_or_contract", + "detected_intent_confidence": "low", + "extracted_filters": { + "sort": "period_desc", + "limit": 20, + "period_from": "2020-12-01", + "period_to": "2020-12-31", + "contract": "24/15" + }, + "missing_required_filters": [], + "selected_recipe": "address_open_items_by_party_or_contract_v1", + "mcp_call_status_legacy": "materialized_but_not_matched", + "account_scope_mode": "preferred", + "account_scope_fallback_applied": true, + "anchor_type": "contract", + "anchor_value_raw": "24/15", + "anchor_value_resolved": "24/15", + "resolver_confidence": "medium", + "ambiguity_count": 0, + "match_failure_stage": "materialized_but_not_anchor_matched", + "match_failure_reason": "contract_anchor_not_matched_in_materialized_rows", + "mcp_call_status": "materialized_but_not_anchor_matched", + "rows_fetched": 20, + "raw_rows_received": 20, + "rows_after_account_scope": 20, + "rows_after_recipe_filter": 0, + "rows_materialized": 20, + "rows_matched": 0, + "raw_row_keys_sample": [ + "Период", + "Регистратор", + "СчетДт", + "СчетКт", + "Сумма", + "Period", + "Registrator", + "AccountDt", + "AccountKt", + "Amount" + ], + "materialization_drop_reason": "none", + "account_token_raw": null, + "account_token_normalized": null, + "account_scope_fields_checked": [ + "account_dt", + "account_kt", + "registrator", + "analytics" + ], + "account_scope_match_strategy": "account_code_regex_plus_alias_map_v1", + "account_scope_drop_reason": "not_applicable", + "runtime_readiness": "LIVE_QUERYABLE_WITH_LIMITS", + "limited_reason_category": "empty_match", + "response_type": "LIMITED_WITH_REASON", + "execution_lane": "address_query", + "llm_decomposition_applied": false, + "llm_decomposition_attempted": false, + "llm_provider_used": "local", + "llm_decomposition_trace_id": null, + "llm_decomposition_effective_message": "а теперь на 2020-12", + "llm_decomposition_reason": "not_address_like", + "fallback_rule_hit": null, + "sanitized_user_message": "а теперь на 2020-12", + "tool_gate_decision": "run_address_lane", + "tool_gate_reason": "followup_context_detected", + "answer_structure_v11": null, + "investigation_state_snapshot": null, + "normalized": null, + "normalizer_output": null + }, + "error_code": null, + "error_message": null + } +] diff --git a/docs/ADDRESS/runs/2026-04-02_Address_Followup_Context_Chains_2026-04-02_13-47-Run2/full_live_results.json b/docs/ADDRESS/runs/2026-04-02_Address_Followup_Context_Chains_2026-04-02_13-47-Run2/full_live_results.json new file mode 100644 index 0000000..f4e9f9a --- /dev/null +++ b/docs/ADDRESS/runs/2026-04-02_Address_Followup_Context_Chains_2026-04-02_13-47-Run2/full_live_results.json @@ -0,0 +1,3850 @@ +{ + "run_id": "2026-04-02_Address_Followup_Context_Chains_2026-04-02_13-47-Run2", + "generated_at": "2026-04-02T13:58:22", + "summary": { + "run_id": "2026-04-02_Address_Followup_Context_Chains_2026-04-02_13-47-Run2", + "generated_at": "2026-04-02T13:58:22", + "source_questions_file": "X:\\1C\\NDC_1C\\docs\\ADDRESS\\question_sets\\address_followup_context_chains_2026-04-02.json", + "backend_url": "http://127.0.0.1:8787/api/assistant/message", + "llm_provider": "local", + "llm_model": "qwen2.5-14b-instruct-1m", + "llm_base_url": "http://127.0.0.1:1234", + "strict_policy": "route", + "totals": { + "questions_total": 25, + "ok_200_count": 25, + "semantic_pass_count": 25, + "semantic_pass_rate": 1.0, + "route_pass_count": 22, + "route_pass_rate": 0.88, + "strict_pass_count": 22, + "strict_pass_rate": 0.88, + "factual_count": 20, + "partial_coverage_count": 5, + "clarification_required_count": 0, + "http_error_count": 0, + "llm_decomposition_applied_count": 12, + "avg_elapsed_ms": 4528 + }, + "distributions": { + "reply_type": { + "factual": 20, + "partial_coverage": 5 + }, + "actual_intent": { + "list_documents_by_counterparty": 3, + "account_balance_snapshot": 9, + "documents_forming_balance": 2, + "bank_operations_by_counterparty": 2, + "list_documents_by_contract": 3, + "bank_operations_by_contract": 3, + "open_items_by_counterparty_or_contract": 3 + }, + "actual_mode": { + "address_query": 25 + }, + "mcp_call_status": { + "matched_non_empty": 20, + "no_raw_rows": 2, + "materialized_but_not_anchor_matched": 3 + }, + "limited_reason_category": { + "empty_match": 5 + }, + "route_health": { + "ok_or_factual": 20, + "partial_non_blocking": 2, + "likely_blocked_route": 3 + } + } + }, + "rows": [ + { + "index": 1, + "id": "F001", + "question": "Покажи документы по СВК за 2020", + "session": "chain_docs_svk_a", + "session_id": "asst-2026-04-02_Address_Followup_Context_Chains_2026-04-02_13-47-Run2-chain_docs_svk_a", + "status_code": 200, + "ok": true, + "elapsed_ms": 6347, + "reply_type": "factual", + "trace_id": "address-kVLUsAOiwW", + "assistant_reply": "Собран список документов по контрагенту (live address lane).\nСтрок отобрано: 3.\n1. 2020-12-30T12:00:00Z | Поступление на расчетный счет 00000000044 от 30.12.2020 12:00:00 | 0 / 0 | 3248300 | аналитика: Группа\n2. 2020-12-16T16:20:53Z | Поступление на расчетный счет 00000000043 от 16.12.2020 16:20:53 | 0 / 0 | 216600 | аналитика: Группа\n3. 2020-12-14T12:00:00Z | Поступление на расчетный счет 00000000042 от 14.12.2020 12:00:00 | 0 / 0 | 200000 | аналитика: Группа", + "assistant_reply_first_line": "Собран список документов по контрагенту (live address lane).", + "expected_intent": "list_documents_by_counterparty", + "actual_intent": "list_documents_by_counterparty", + "intent_match": true, + "expected_mode": "address_query", + "actual_mode": "address_query", + "mode_match": true, + "expected_reply_type": null, + "reply_match": true, + "semantic_pass": true, + "route_pass": true, + "route_health": "ok_or_factual", + "strict_policy": "route", + "strict_pass": true, + "selected_recipe": "address_documents_by_counterparty_v1", + "missing_required_filters": [], + "match_failure_stage": "none", + "match_failure_reason": null, + "rows_fetched": 20, + "rows_matched": 3, + "mcp_call_status": "matched_non_empty", + "limited_reason_category": null, + "llm_decomposition_applied": true, + "llm_decomposition_reason": "normalized_fragment_applied", + "fallback_rule_hit": null, + "debug_payload": { + "trace_id": "address-kVLUsAOiwW", + "prompt_version": "address_query_runtime_v1", + "schema_version": "address_query_runtime_v1", + "fallback_type": "none", + "route_summary": null, + "fragments": [], + "requirements_extracted": [], + "coverage_report": { + "requirements_total": 0, + "requirements_covered": 0, + "requirements_uncovered": [], + "requirements_partially_covered": [], + "clarification_needed_for": [], + "out_of_scope_requirements": [] + }, + "routes": [], + "retrieval_status": [], + "retrieval_results": [], + "answer_grounding_check": { + "status": "grounded", + "route_subject_match": true, + "missing_requirements": [], + "reasons": [ + "address_action_detected", + "address_entity_detected", + "document_list_signal_detected", + "documents_by_counterparty_signal_detected" + ], + "why_included_summary": [], + "selection_reason_summary": [] + }, + "dropped_intent_segments": [], + "detected_mode": "address_query", + "detected_mode_confidence": "high", + "query_shape": "DOCUMENT_LIST", + "query_shape_confidence": "medium", + "detected_intent": "list_documents_by_counterparty", + "detected_intent_confidence": "medium", + "extracted_filters": { + "sort": "period_desc", + "limit": 20, + "counterparty": "СВК", + "period_from": "2020-01-01", + "period_to": "2020-12-31" + }, + "missing_required_filters": [], + "selected_recipe": "address_documents_by_counterparty_v1", + "mcp_call_status_legacy": "matched_non_empty", + "account_scope_mode": "preferred", + "account_scope_fallback_applied": false, + "anchor_type": "counterparty", + "anchor_value_raw": "СВК", + "anchor_value_resolved": "Группа СВК", + "resolver_confidence": "medium", + "ambiguity_count": 0, + "match_failure_stage": "none", + "match_failure_reason": null, + "mcp_call_status": "matched_non_empty", + "rows_fetched": 20, + "raw_rows_received": 20, + "rows_after_account_scope": 5, + "rows_after_recipe_filter": 3, + "rows_materialized": 5, + "rows_matched": 3, + "raw_row_keys_sample": [ + "Период", + "Регистратор", + "СчетДт", + "СчетКт", + "Сумма", + "Контрагент", + "Period", + "Registrator", + "Amount" + ], + "materialization_drop_reason": "none", + "account_token_raw": null, + "account_token_normalized": null, + "account_scope_fields_checked": [ + "account_dt", + "account_kt", + "registrator", + "analytics" + ], + "account_scope_match_strategy": "account_code_regex_plus_alias_map_v1", + "account_scope_drop_reason": "not_applicable", + "runtime_readiness": "LIVE_QUERYABLE_WITH_LIMITS", + "limited_reason_category": null, + "response_type": "FACTUAL_LIST", + "execution_lane": "address_query", + "llm_decomposition_applied": true, + "llm_decomposition_attempted": true, + "llm_provider_used": "local", + "llm_decomposition_trace_id": "bVPOoXjWpm4lMW", + "llm_decomposition_effective_message": "Показать документы по СВК за период 2020 год.", + "llm_decomposition_reason": "normalized_fragment_applied", + "fallback_rule_hit": null, + "sanitized_user_message": "покажи документы по свк за 2020", + "tool_gate_decision": "run_address_lane", + "tool_gate_reason": "address_mode_classifier_detected", + "answer_structure_v11": null, + "investigation_state_snapshot": null, + "normalized": null, + "normalizer_output": { + "trace_id": "bVPOoXjWpm4lMW", + "prompt_version": "normalizer_v2_0_2", + "applied": true, + "effective_message": "Показать документы по СВК за период 2020 год." + } + }, + "error_code": null, + "error_message": null + }, + { + "index": 2, + "id": "F002", + "question": "а теперь только за май 2020", + "session": "chain_docs_svk_a", + "session_id": "asst-2026-04-02_Address_Followup_Context_Chains_2026-04-02_13-47-Run2-chain_docs_svk_a", + "status_code": 200, + "ok": true, + "elapsed_ms": 3241, + "reply_type": "factual", + "trace_id": "address-VVFyskSriZ", + "assistant_reply": "По окну 2020-05-01..2020-05-31 строк не найдено; показаны ближайшие доступные данные 2020-07-27..2021-11-10.\nСобран список документов по контрагенту (live address lane).\nСтрок отобрано: 26.\n1. 2021-11-10T12:00:07Z | Поступление на расчетный счет 00000000013 от 10.11.2021 12:00:07 | 0 / 0 | 20000 | аналитика: Группа\n2. 2021-09-29T12:00:03Z | Поступление на расчетный счет 00000000012 от 29.09.2021 12:00:03 | 0 / 0 | 50000 | аналитика: Группа\n3. 2021-08-31T12:00:04Z | Поступление на расчетный счет 00000000011 от 31.08.2021 12:00:04 | 0 / 0 | 120500 | аналитика: Группа\n4. 2021-06-22T12:00:00Z | Поступление на расчетный счет 00000000010 от 22.06.2021 12:00:00 | 0 / 0 | 498630 | аналитика: Группа\n5. 2021-06-09T12:00:05Z | Поступление на расчетный счет 00000000009 от 09.06.2021 12:00:05 | 0 / 0 | 418960 | аналитика: Группа\n6. 2021-04-28T12:00:08Z | Поступление на расчетный счет 00000000008 от 28.04.2021 12:00:08 | 0 / 0 | 564300 | аналитика: Группа\n7. 2021-04-22T12:00:00Z | Поступление на расчетный счет 00000000007 от 22.04.2021 12:00:00 | 0 / 0 | 982420 | аналитика: Группа\n8. 2021-04-13T12:00:11Z | Поступление на расчетный счет 00000000006 от 13.04.2021 12:00:11 | 0 / 0 | 1882400 | аналитика: Группа\n9. 2021-03-25T12:00:02Z | Поступление на расчетный счет 00000000005 от 25.03.2021 12:00:02 | 0 / 0 | 644315 | аналитика: Группа\n10. 2021-03-24T12:00:03Z | Поступление на расчетный счет 00000000004 от 24.03.2021 12:00:03 | 0 / 0 | 1219990 | аналитика: Группа\n11. 2021-03-18T12:00:00Z | Поступление на расчетный счет 00000000003 от 18.03.2021 12:00:00 | 0 / 0 | 1425310 | аналитика: Группа\n12. 2021-03-12T12:00:03Z | Поступление на расчетный счет 00000000002 от 12.03.2021 12:00:03 | 0 / 0 | 214600 | аналитика: Группа\n13. 2021-02-19T12:00:01Z | Поступление на расчетный счет 00000000001 от 19.02.2021 12:00:01 | 0 / 0 | 518600 | аналитика: Группа\n14. 2020-12-30T12:00:00Z | Поступление на расчетный счет 00000000044 от 30.12.2020 12:00:00 | 0 / 0 | 3248300 | аналитика: Группа\n15. 2020-12-16T16:20:53Z | Поступление на расчетный счет 00000000043 от 16.12.2020 16:20:53 | 0 / 0 | 216600 | аналитика: Группа\n16. 2020-12-14T12:00:00Z | Поступление на расчетный счет 00000000042 от 14.12.2020 12:00:00 | 0 / 0 | 200000 | аналитика: Группа\n17. 2020-11-30T12:00:07Z | Поступление на расчетный счет 00000000041 от 30.11.2020 12:00:07 | 0 / 0 | 38900 | аналитика: Группа\n18. 2020-11-19T12:00:04Z | Поступление на расчетный счет 00000000039 от 19.11.2020 12:00:04 | 0 / 0 | 3320600 | аналитика: Группа\n19. 2020-11-18T12:00:05Z | Поступление на расчетный счет 00000000038 от 18.11.2020 12:00:05 | 0 / 0 | 745300 | аналитика: Группа\n20. 2020-11-18T12:00:04Z | Поступление на расчетный счет 00000000037 от 18.11.2020 12:00:04 | 0 / 0 | 320000 | аналитика: Группа\n21. 2020-11-13T12:00:03Z | Поступление на расчетный счет 00000000036 от 13.11.2020 12:00:03 | 0 / 0 | 313600 | аналитика: Группа\n22. 2020-11-10T15:39:13Z | Поступление на расчетный счет 00000000035 от 10.11.2020 15:39:13 | 0 / 0 | 328300 | аналитика: Группа\n23. 2020-10-26T12:00:00Z | Поступление на расчетный счет 00000000034 от 26.10.2020 12:00:00 | 0 / 0 | 175000 | аналитика: Группа\n24. 2020-08-20T12:00:06Z | Поступление на расчетный счет 00000000032 от 20.08.2020 12:00:06 | 0 / 0 | 3126005 | аналитика: Группа\n25. 2020-07-30T12:00:00Z | Поступление на расчетный счет 00000000029 от 30.07.2020 12:00:00 | 0 / 0 | 20000 | аналитика: Группа\n26. 2020-07-27T12:00:00Z | Поступление на расчетный счет 00000000028 от 27.07.2020 12:00:00 | 0 / 0 | 40860 | аналитика: Группа", + "assistant_reply_first_line": "По окну 2020-05-01..2020-05-31 строк не найдено; показаны ближайшие доступные данные 2020-07-27..2021-11-10.", + "expected_intent": "list_documents_by_counterparty", + "actual_intent": "list_documents_by_counterparty", + "intent_match": true, + "expected_mode": "address_query", + "actual_mode": "address_query", + "mode_match": true, + "expected_reply_type": null, + "reply_match": true, + "semantic_pass": true, + "route_pass": true, + "route_health": "ok_or_factual", + "strict_policy": "route", + "strict_pass": true, + "selected_recipe": "address_documents_by_counterparty_v1", + "missing_required_filters": [], + "match_failure_stage": "none", + "match_failure_reason": null, + "rows_fetched": 1000, + "rows_matched": 26, + "mcp_call_status": "matched_non_empty", + "limited_reason_category": null, + "llm_decomposition_applied": false, + "llm_decomposition_reason": "not_address_like", + "fallback_rule_hit": null, + "debug_payload": { + "trace_id": "address-VVFyskSriZ", + "prompt_version": "address_query_runtime_v1", + "schema_version": "address_query_runtime_v1", + "fallback_type": "none", + "route_summary": null, + "fragments": [], + "requirements_extracted": [], + "coverage_report": { + "requirements_total": 0, + "requirements_covered": 0, + "requirements_uncovered": [], + "requirements_partially_covered": [], + "clarification_needed_for": [], + "out_of_scope_requirements": [] + }, + "routes": [], + "retrieval_status": [], + "retrieval_results": [], + "answer_grounding_check": { + "status": "grounded", + "route_subject_match": true, + "missing_requirements": [], + "reasons": [ + "no_address_or_deep_signal", + "address_mode_from_followup_context", + "shape_not_detected", + "intent_not_supported_in_v1", + "intent_from_followup_context", + "counterparty_from_followup_context", + "address_followup_context_applied", + "period_window_auto_broadened_to_available_data" + ], + "why_included_summary": [], + "selection_reason_summary": [] + }, + "dropped_intent_segments": [], + "detected_mode": "address_query", + "detected_mode_confidence": "medium", + "query_shape": "UNKNOWN", + "query_shape_confidence": "low", + "detected_intent": "list_documents_by_counterparty", + "detected_intent_confidence": "low", + "extracted_filters": { + "sort": "period_desc", + "limit": 20, + "period_from": "2020-05-01", + "period_to": "2020-05-31", + "counterparty": "СВК" + }, + "missing_required_filters": [], + "selected_recipe": "address_documents_by_counterparty_v1", + "mcp_call_status_legacy": "matched_non_empty", + "account_scope_mode": "preferred", + "account_scope_fallback_applied": false, + "anchor_type": "counterparty", + "anchor_value_raw": "СВК", + "anchor_value_resolved": "Группа СВК", + "resolver_confidence": "medium", + "ambiguity_count": 0, + "match_failure_stage": "none", + "match_failure_reason": null, + "mcp_call_status": "matched_non_empty", + "rows_fetched": 1000, + "raw_rows_received": 1000, + "rows_after_account_scope": 124, + "rows_after_recipe_filter": 26, + "rows_materialized": 124, + "rows_matched": 26, + "raw_row_keys_sample": [ + "Период", + "Регистратор", + "СчетДт", + "СчетКт", + "Сумма", + "Контрагент", + "Period", + "Registrator", + "Amount" + ], + "materialization_drop_reason": "none", + "account_token_raw": null, + "account_token_normalized": null, + "account_scope_fields_checked": [ + "account_dt", + "account_kt", + "registrator", + "analytics" + ], + "account_scope_match_strategy": "account_code_regex_plus_alias_map_v1", + "account_scope_drop_reason": "not_applicable", + "runtime_readiness": "LIVE_QUERYABLE_WITH_LIMITS", + "limited_reason_category": null, + "response_type": "FACTUAL_LIST", + "execution_lane": "address_query", + "llm_decomposition_applied": false, + "llm_decomposition_attempted": false, + "llm_provider_used": "local", + "llm_decomposition_trace_id": null, + "llm_decomposition_effective_message": "а теперь только за май 2020", + "llm_decomposition_reason": "not_address_like", + "fallback_rule_hit": null, + "sanitized_user_message": "а теперь только за май 2020", + "tool_gate_decision": "run_address_lane", + "tool_gate_reason": "followup_context_detected", + "answer_structure_v11": null, + "investigation_state_snapshot": null, + "normalized": null, + "normalizer_output": null + }, + "error_code": null, + "error_message": null + }, + { + "index": 3, + "id": "F003", + "question": "а по счету 60.01 на ту же дату", + "session": "chain_docs_svk_a", + "session_id": "asst-2026-04-02_Address_Followup_Context_Chains_2026-04-02_13-47-Run2-chain_docs_svk_a", + "status_code": 200, + "ok": true, + "elapsed_ms": 5931, + "reply_type": "factual", + "trace_id": "address-x7cFI0aPyA", + "assistant_reply": "Адресный срез по счету собран (по движениям live MCP).\nСтрок отобрано: 5.\nСумма по отобранным движениям: 707200.\n1. 2020-05-22T10:12:50Z | Списание с расчетного счета 00000000147 от 22.05.2020 10:12:50 | 60.01 / 51 | 75367\n2. 2020-05-22T10:12:50Z | Списание с расчетного счета 00000000147 от 22.05.2020 10:12:50 | 60.01 / 51 | 211833\n3. 2020-05-18T12:00:02Z | Списание с расчетного счета 00000000145 от 18.05.2020 12:00:02 | 60.01 / 51 | 187967\n4. 2020-05-18T12:00:02Z | Списание с расчетного счета 00000000145 от 18.05.2020 12:00:02 | 60.01 / 51 | 162033", + "assistant_reply_first_line": "Адресный срез по счету собран (по движениям live MCP).", + "expected_intent": "account_balance_snapshot", + "actual_intent": "account_balance_snapshot", + "intent_match": true, + "expected_mode": "address_query", + "actual_mode": "address_query", + "mode_match": true, + "expected_reply_type": null, + "reply_match": true, + "semantic_pass": true, + "route_pass": true, + "route_health": "ok_or_factual", + "strict_policy": "route", + "strict_pass": true, + "selected_recipe": "address_movements_account_snapshot_v1", + "missing_required_filters": [], + "match_failure_stage": "none", + "match_failure_reason": null, + "rows_fetched": 5, + "rows_matched": 5, + "mcp_call_status": "matched_non_empty", + "limited_reason_category": null, + "llm_decomposition_applied": true, + "llm_decomposition_reason": "normalized_fragment_applied", + "fallback_rule_hit": null, + "debug_payload": { + "trace_id": "address-x7cFI0aPyA", + "prompt_version": "address_query_runtime_v1", + "schema_version": "address_query_runtime_v1", + "fallback_type": "none", + "route_summary": null, + "fragments": [], + "requirements_extracted": [], + "coverage_report": { + "requirements_total": 0, + "requirements_covered": 0, + "requirements_uncovered": [], + "requirements_partially_covered": [], + "clarification_needed_for": [], + "out_of_scope_requirements": [] + }, + "routes": [], + "retrieval_status": [], + "retrieval_results": [], + "answer_grounding_check": { + "status": "grounded", + "route_subject_match": true, + "missing_requirements": [], + "reasons": [ + "address_entity_detected", + "shape_not_detected", + "account_balance_signal_detected", + "as_of_date_from_followup_context", + "period_from_followup_context", + "address_followup_context_applied" + ], + "why_included_summary": [], + "selection_reason_summary": [] + }, + "dropped_intent_segments": [], + "detected_mode": "address_query", + "detected_mode_confidence": "medium", + "query_shape": "UNKNOWN", + "query_shape_confidence": "low", + "detected_intent": "account_balance_snapshot", + "detected_intent_confidence": "high", + "extracted_filters": { + "sort": "period_desc", + "limit": 20, + "account": "60.01", + "as_of_date": "2020-05-31", + "period_from": "2020-05-01", + "period_to": "2020-05-31" + }, + "missing_required_filters": [], + "selected_recipe": "address_movements_account_snapshot_v1", + "mcp_call_status_legacy": "matched_non_empty", + "account_scope_mode": "strict", + "account_scope_fallback_applied": false, + "anchor_type": "account", + "anchor_value_raw": "60.01", + "anchor_value_resolved": "60.01", + "resolver_confidence": "high", + "ambiguity_count": 0, + "match_failure_stage": "none", + "match_failure_reason": null, + "mcp_call_status": "matched_non_empty", + "rows_fetched": 5, + "raw_rows_received": 5, + "rows_after_account_scope": 5, + "rows_after_recipe_filter": 5, + "rows_materialized": 5, + "rows_matched": 5, + "raw_row_keys_sample": [ + "Период", + "Регистратор", + "СчетДт", + "СчетКт", + "Сумма", + "Period", + "Registrator", + "AccountDt", + "AccountKt", + "Amount" + ], + "materialization_drop_reason": "none", + "account_token_raw": "60.01", + "account_token_normalized": "60.1", + "account_scope_fields_checked": [ + "account_dt", + "account_kt", + "registrator", + "analytics" + ], + "account_scope_match_strategy": "account_code_regex_plus_alias_map_v1", + "account_scope_drop_reason": "rows_remaining_after_scope_filter", + "runtime_readiness": "LIVE_QUERYABLE_WITH_LIMITS", + "limited_reason_category": null, + "response_type": "FACTUAL_SUMMARY", + "execution_lane": "address_query", + "llm_decomposition_applied": true, + "llm_decomposition_attempted": true, + "llm_provider_used": "local", + "llm_decomposition_trace_id": "eEaG_kd0rLka2g", + "llm_decomposition_effective_message": "по счету 60.01 на ту же дату", + "llm_decomposition_reason": "normalized_fragment_applied", + "fallback_rule_hit": null, + "sanitized_user_message": "а по счету 60.01 на ту же дату", + "tool_gate_decision": "run_address_lane", + "tool_gate_reason": "address_mode_classifier_detected", + "answer_structure_v11": null, + "investigation_state_snapshot": null, + "normalized": null, + "normalizer_output": { + "trace_id": "eEaG_kd0rLka2g", + "prompt_version": "normalizer_v2_0_2", + "applied": true, + "effective_message": "по счету 60.01 на ту же дату" + } + }, + "error_code": null, + "error_message": null + }, + { + "index": 4, + "id": "F004", + "question": "а на ту же дату по 62.01", + "session": "chain_docs_svk_a", + "session_id": "asst-2026-04-02_Address_Followup_Context_Chains_2026-04-02_13-47-Run2-chain_docs_svk_a", + "status_code": 200, + "ok": true, + "elapsed_ms": 924, + "reply_type": "factual", + "trace_id": "address-6_Qm5AjoL9", + "assistant_reply": "Адресный срез по счету собран (по движениям live MCP).\nСтрок отобрано: 2.\nСумма по отобранным движениям: 1530000.\n1. 2020-05-18T12:00:01Z | Реализация товаров и услуг 00000000002 от 18.05.2020 12:00:01 | 62.01 / 90.01.1 | 765000\n2. 2020-05-18T12:00:01Z | Реализация товаров и услуг 00000000002 от 18.05.2020 12:00:01 | 62.02 / 62.01 | 765000", + "assistant_reply_first_line": "Адресный срез по счету собран (по движениям live MCP).", + "expected_intent": "account_balance_snapshot", + "actual_intent": "account_balance_snapshot", + "intent_match": true, + "expected_mode": "address_query", + "actual_mode": "address_query", + "mode_match": true, + "expected_reply_type": null, + "reply_match": true, + "semantic_pass": true, + "route_pass": true, + "route_health": "ok_or_factual", + "strict_policy": "route", + "strict_pass": true, + "selected_recipe": "address_movements_account_snapshot_v1", + "missing_required_filters": [], + "match_failure_stage": "none", + "match_failure_reason": null, + "rows_fetched": 2, + "rows_matched": 2, + "mcp_call_status": "matched_non_empty", + "limited_reason_category": null, + "llm_decomposition_applied": false, + "llm_decomposition_reason": "not_address_like", + "fallback_rule_hit": null, + "debug_payload": { + "trace_id": "address-6_Qm5AjoL9", + "prompt_version": "address_query_runtime_v1", + "schema_version": "address_query_runtime_v1", + "fallback_type": "none", + "route_summary": null, + "fragments": [], + "requirements_extracted": [], + "coverage_report": { + "requirements_total": 0, + "requirements_covered": 0, + "requirements_uncovered": [], + "requirements_partially_covered": [], + "clarification_needed_for": [], + "out_of_scope_requirements": [] + }, + "routes": [], + "retrieval_status": [], + "retrieval_results": [], + "answer_grounding_check": { + "status": "grounded", + "route_subject_match": true, + "missing_requirements": [], + "reasons": [ + "address_entity_detected", + "shape_not_detected", + "intent_not_supported_in_v1", + "intent_adjusted_to_balance_followup_context", + "as_of_date_from_followup_context", + "period_from_followup_context", + "address_followup_context_applied" + ], + "why_included_summary": [], + "selection_reason_summary": [] + }, + "dropped_intent_segments": [], + "detected_mode": "address_query", + "detected_mode_confidence": "medium", + "query_shape": "UNKNOWN", + "query_shape_confidence": "low", + "detected_intent": "account_balance_snapshot", + "detected_intent_confidence": "low", + "extracted_filters": { + "sort": "period_desc", + "limit": 20, + "account": "62.01", + "as_of_date": "2020-05-31", + "period_from": "2020-05-01", + "period_to": "2020-05-31" + }, + "missing_required_filters": [], + "selected_recipe": "address_movements_account_snapshot_v1", + "mcp_call_status_legacy": "matched_non_empty", + "account_scope_mode": "strict", + "account_scope_fallback_applied": false, + "anchor_type": "account", + "anchor_value_raw": "62.01", + "anchor_value_resolved": "62.01", + "resolver_confidence": "high", + "ambiguity_count": 0, + "match_failure_stage": "none", + "match_failure_reason": null, + "mcp_call_status": "matched_non_empty", + "rows_fetched": 2, + "raw_rows_received": 2, + "rows_after_account_scope": 2, + "rows_after_recipe_filter": 2, + "rows_materialized": 2, + "rows_matched": 2, + "raw_row_keys_sample": [ + "Период", + "Регистратор", + "СчетДт", + "СчетКт", + "Сумма", + "Period", + "Registrator", + "AccountDt", + "AccountKt", + "Amount" + ], + "materialization_drop_reason": "none", + "account_token_raw": "62.01", + "account_token_normalized": "62.1", + "account_scope_fields_checked": [ + "account_dt", + "account_kt", + "registrator", + "analytics" + ], + "account_scope_match_strategy": "account_code_regex_plus_alias_map_v1", + "account_scope_drop_reason": "rows_remaining_after_scope_filter", + "runtime_readiness": "LIVE_QUERYABLE_WITH_LIMITS", + "limited_reason_category": null, + "response_type": "FACTUAL_SUMMARY", + "execution_lane": "address_query", + "llm_decomposition_applied": false, + "llm_decomposition_attempted": false, + "llm_provider_used": "local", + "llm_decomposition_trace_id": null, + "llm_decomposition_effective_message": "а на ту же дату по 62.01", + "llm_decomposition_reason": "not_address_like", + "fallback_rule_hit": null, + "sanitized_user_message": "а на ту же дату по 62.01", + "tool_gate_decision": "run_address_lane", + "tool_gate_reason": "address_mode_classifier_detected", + "answer_structure_v11": null, + "investigation_state_snapshot": null, + "normalized": null, + "normalizer_output": null + }, + "error_code": null, + "error_message": null + }, + { + "index": 5, + "id": "F005", + "question": "раскрой остаток по 62.01 документами на ту же дату", + "session": "chain_docs_svk_a", + "session_id": "asst-2026-04-02_Address_Followup_Context_Chains_2026-04-02_13-47-Run2-chain_docs_svk_a", + "status_code": 200, + "ok": true, + "elapsed_ms": 6104, + "reply_type": "factual", + "trace_id": "address-c4OCjI_Mqs", + "assistant_reply": "Собран drilldown документов, формирующих остаток по счету на указанную дату.\nДокументных строк отобрано: 2.\nСумма по отобранным движениям: 1530000.\n1. 2020-05-18T12:00:01Z | Реализация товаров и услуг 00000000002 от 18.05.2020 12:00:01 | 62.01 / 90.01.1 | 765000\n2. 2020-05-18T12:00:01Z | Реализация товаров и услуг 00000000002 от 18.05.2020 12:00:01 | 62.02 / 62.01 | 765000\nМожно уточнить выборку по контрагенту, договору или периоду.", + "assistant_reply_first_line": "Собран drilldown документов, формирующих остаток по счету на указанную дату.", + "expected_intent": "documents_forming_balance", + "actual_intent": "documents_forming_balance", + "intent_match": true, + "expected_mode": "address_query", + "actual_mode": "address_query", + "mode_match": true, + "expected_reply_type": null, + "reply_match": true, + "semantic_pass": true, + "route_pass": true, + "route_health": "ok_or_factual", + "strict_policy": "route", + "strict_pass": true, + "selected_recipe": "address_documents_forming_balance_v1", + "missing_required_filters": [], + "match_failure_stage": "none", + "match_failure_reason": null, + "rows_fetched": 2, + "rows_matched": 2, + "mcp_call_status": "matched_non_empty", + "limited_reason_category": null, + "llm_decomposition_applied": false, + "llm_decomposition_reason": "normalized_fragment_rejected_intent_conflict", + "fallback_rule_hit": null, + "debug_payload": { + "trace_id": "address-c4OCjI_Mqs", + "prompt_version": "address_query_runtime_v1", + "schema_version": "address_query_runtime_v1", + "fallback_type": "none", + "route_summary": null, + "fragments": [], + "requirements_extracted": [], + "coverage_report": { + "requirements_total": 0, + "requirements_covered": 0, + "requirements_uncovered": [], + "requirements_partially_covered": [], + "clarification_needed_for": [], + "out_of_scope_requirements": [] + }, + "routes": [], + "retrieval_status": [], + "retrieval_results": [], + "answer_grounding_check": { + "status": "grounded", + "route_subject_match": true, + "missing_requirements": [], + "reasons": [ + "address_action_detected", + "address_entity_detected", + "drilldown_signal_detected", + "documents_forming_balance_signal_detected", + "as_of_date_from_followup_context", + "period_from_followup_context", + "address_followup_context_applied" + ], + "why_included_summary": [], + "selection_reason_summary": [] + }, + "dropped_intent_segments": [], + "detected_mode": "address_query", + "detected_mode_confidence": "high", + "query_shape": "DRILLDOWN_REQUEST", + "query_shape_confidence": "high", + "detected_intent": "documents_forming_balance", + "detected_intent_confidence": "high", + "extracted_filters": { + "sort": "period_desc", + "limit": 20, + "account": "62.01", + "as_of_date": "2020-05-31", + "period_from": "2020-05-01", + "period_to": "2020-05-31" + }, + "missing_required_filters": [], + "selected_recipe": "address_documents_forming_balance_v1", + "mcp_call_status_legacy": "matched_non_empty", + "account_scope_mode": "strict", + "account_scope_fallback_applied": false, + "anchor_type": "account", + "anchor_value_raw": "62.01", + "anchor_value_resolved": "62.01", + "resolver_confidence": "high", + "ambiguity_count": 0, + "match_failure_stage": "none", + "match_failure_reason": null, + "mcp_call_status": "matched_non_empty", + "rows_fetched": 2, + "raw_rows_received": 2, + "rows_after_account_scope": 2, + "rows_after_recipe_filter": 2, + "rows_materialized": 2, + "rows_matched": 2, + "raw_row_keys_sample": [ + "Период", + "Регистратор", + "СчетДт", + "СчетКт", + "Сумма", + "Period", + "Registrator", + "AccountDt", + "AccountKt", + "Amount" + ], + "materialization_drop_reason": "none", + "account_token_raw": "62.01", + "account_token_normalized": "62.1", + "account_scope_fields_checked": [ + "account_dt", + "account_kt", + "registrator", + "analytics" + ], + "account_scope_match_strategy": "account_code_regex_plus_alias_map_v1", + "account_scope_drop_reason": "rows_remaining_after_scope_filter", + "runtime_readiness": "LIVE_QUERYABLE_WITH_LIMITS", + "limited_reason_category": null, + "response_type": "FACTUAL_LIST", + "execution_lane": "address_query", + "llm_decomposition_applied": false, + "llm_decomposition_attempted": true, + "llm_provider_used": "local", + "llm_decomposition_trace_id": "kRq4z_BdgLCVJL", + "llm_decomposition_effective_message": "раскрой остаток по 62.01 документами на ту же дату", + "llm_decomposition_reason": "normalized_fragment_rejected_intent_conflict", + "fallback_rule_hit": null, + "sanitized_user_message": "раскрой остаток по 62.01 документами на ту же дату", + "tool_gate_decision": "run_address_lane", + "tool_gate_reason": "address_mode_classifier_detected", + "answer_structure_v11": null, + "investigation_state_snapshot": null, + "normalized": null, + "normalizer_output": { + "trace_id": "kRq4z_BdgLCVJL", + "prompt_version": "normalizer_v2_0_2", + "applied": false, + "effective_message": "раскрой остаток по 62.01 документами на ту же дату" + } + }, + "error_code": null, + "error_message": null + }, + { + "index": 6, + "id": "F006", + "question": "Покажи банковские операции по СВК за 2020", + "session": "chain_bank_svk_b", + "session_id": "asst-2026-04-02_Address_Followup_Context_Chains_2026-04-02_13-47-Run2-chain_bank_svk_b", + "status_code": 200, + "ok": true, + "elapsed_ms": 8378, + "reply_type": "factual", + "trace_id": "address-l9yOwTed82", + "assistant_reply": "Точный якорь не подтвердился в текущем окне live-данных; показаны ближайшие доступные документы/операции по выбранному типу.\nСобран список банковских операций по контрагенту (live address lane).\nСтрок отобрано: 5.\n1. 2020-12-30T12:00:00Z | Поступление на расчетный счет 00000000044 от 30.12.2020 12:00:00 | 0 / 0 | 3248300 | аналитика: Группа\n2. 2020-12-16T16:20:53Z | Поступление на расчетный счет 00000000043 от 16.12.2020 16:20:53 | 0 / 0 | 216600 | аналитика: Группа\n3. 2020-12-16T16:20:52Z | Списание с расчетного счета 00000000294 от 16.12.2020 16:20:52 | 0 / 0 | 3849.26 | аналитика: УФК по г. Москве (для ГУ - Отделения ПФР по г. Москве и МО)\n4. 2020-12-16T16:20:51Z | Списание с расчетного счета 00000000293 от 16.12.2020 16:20:51 | 0 / 0 | 60 | аналитика: СБЕРБАНК, ПАО\n5. 2020-12-14T12:00:00Z | Поступление на расчетный счет 00000000042 от 14.12.2020 12:00:00 | 0 / 0 | 200000 | аналитика: Группа", + "assistant_reply_first_line": "Точный якорь не подтвердился в текущем окне live-данных; показаны ближайшие доступные документы/операции по выбранному типу.", + "expected_intent": "bank_operations_by_counterparty", + "actual_intent": "bank_operations_by_counterparty", + "intent_match": true, + "expected_mode": "address_query", + "actual_mode": "address_query", + "mode_match": true, + "expected_reply_type": null, + "reply_match": true, + "semantic_pass": true, + "route_pass": true, + "route_health": "ok_or_factual", + "strict_policy": "route", + "strict_pass": true, + "selected_recipe": "address_bank_operations_by_counterparty_v1", + "missing_required_filters": [], + "match_failure_stage": "materialized_but_not_anchor_matched", + "match_failure_reason": "counterparty_anchor_not_matched_in_materialized_rows", + "rows_fetched": 20, + "rows_matched": 5, + "mcp_call_status": "matched_non_empty", + "limited_reason_category": null, + "llm_decomposition_applied": true, + "llm_decomposition_reason": "normalized_fragment_applied", + "fallback_rule_hit": null, + "debug_payload": { + "trace_id": "address-l9yOwTed82", + "prompt_version": "address_query_runtime_v1", + "schema_version": "address_query_runtime_v1", + "fallback_type": "none", + "route_summary": null, + "fragments": [], + "requirements_extracted": [], + "coverage_report": { + "requirements_total": 0, + "requirements_covered": 0, + "requirements_uncovered": [], + "requirements_partially_covered": [], + "clarification_needed_for": [], + "out_of_scope_requirements": [] + }, + "routes": [], + "retrieval_status": [], + "retrieval_results": [], + "answer_grounding_check": { + "status": "grounded", + "route_subject_match": true, + "missing_requirements": [], + "reasons": [ + "address_action_detected", + "address_entity_detected", + "shape_not_detected", + "bank_ops_by_counterparty_signal_detected", + "anchor_not_matched_fallback_rows" + ], + "why_included_summary": [], + "selection_reason_summary": [] + }, + "dropped_intent_segments": [], + "detected_mode": "address_query", + "detected_mode_confidence": "high", + "query_shape": "UNKNOWN", + "query_shape_confidence": "low", + "detected_intent": "bank_operations_by_counterparty", + "detected_intent_confidence": "medium", + "extracted_filters": { + "sort": "period_desc", + "limit": 20, + "account": "51", + "counterparty": "счету", + "period_from": "2020-01-01", + "period_to": "2020-12-31" + }, + "missing_required_filters": [], + "selected_recipe": "address_bank_operations_by_counterparty_v1", + "mcp_call_status_legacy": "matched_non_empty", + "account_scope_mode": "preferred", + "account_scope_fallback_applied": false, + "anchor_type": "counterparty", + "anchor_value_raw": "счету", + "anchor_value_resolved": "счету", + "resolver_confidence": "medium", + "ambiguity_count": 0, + "match_failure_stage": "materialized_but_not_anchor_matched", + "match_failure_reason": "counterparty_anchor_not_matched_in_materialized_rows", + "mcp_call_status": "matched_non_empty", + "rows_fetched": 20, + "raw_rows_received": 20, + "rows_after_account_scope": 5, + "rows_after_recipe_filter": 0, + "rows_materialized": 5, + "rows_matched": 5, + "raw_row_keys_sample": [ + "Период", + "Регистратор", + "СчетДт", + "СчетКт", + "Сумма", + "Контрагент", + "Period", + "Registrator", + "Amount" + ], + "materialization_drop_reason": "none", + "account_token_raw": "51", + "account_token_normalized": "51", + "account_scope_fields_checked": [ + "account_dt", + "account_kt", + "registrator", + "analytics" + ], + "account_scope_match_strategy": "account_code_regex_plus_alias_map_v1", + "account_scope_drop_reason": "not_applicable", + "runtime_readiness": "LIVE_QUERYABLE_WITH_LIMITS", + "limited_reason_category": null, + "response_type": "FACTUAL_LIST", + "execution_lane": "address_query", + "llm_decomposition_applied": true, + "llm_decomposition_attempted": true, + "llm_provider_used": "local", + "llm_decomposition_trace_id": "h_PGXn1-vo10OU", + "llm_decomposition_effective_message": "Показать банковские операции по счету 51 (СВК) за период 2020 год.", + "llm_decomposition_reason": "normalized_fragment_applied", + "fallback_rule_hit": null, + "sanitized_user_message": "покажи банковские операции по свк за 2020", + "tool_gate_decision": "run_address_lane", + "tool_gate_reason": "address_mode_classifier_detected", + "answer_structure_v11": null, + "investigation_state_snapshot": null, + "normalized": null, + "normalizer_output": { + "trace_id": "h_PGXn1-vo10OU", + "prompt_version": "normalizer_v2_0_2", + "applied": true, + "effective_message": "Показать банковские операции по счету 51 (СВК) за период 2020 год." + } + }, + "error_code": null, + "error_message": null + }, + { + "index": 7, + "id": "F007", + "question": "а теперь только ноябрь 2020", + "session": "chain_bank_svk_b", + "session_id": "asst-2026-04-02_Address_Followup_Context_Chains_2026-04-02_13-47-Run2-chain_bank_svk_b", + "status_code": 200, + "ok": true, + "elapsed_ms": 2988, + "reply_type": "factual", + "trace_id": "address-2LbUeF5QNh", + "assistant_reply": "Точный якорь не подтвердился в текущем окне live-данных; показаны ближайшие доступные документы/операции по выбранному типу.\nСобран список банковских операций по контрагенту (live address lane).\nСтрок отобрано: 5.\n1. 2020-11-30T12:00:07Z | Поступление на расчетный счет 00000000041 от 30.11.2020 12:00:07 | 0 / 0 | 38900 | аналитика: Группа\n3. 2020-11-19T12:00:04Z | Поступление на расчетный счет 00000000039 от 19.11.2020 12:00:04 | 0 / 0 | 3320600 | аналитика: Группа\n4. 2020-11-18T12:00:05Z | Поступление на расчетный счет 00000000038 от 18.11.2020 12:00:05 | 0 / 0 | 745300 | аналитика: Группа\n5. 2020-11-18T12:00:04Z | Поступление на расчетный счет 00000000037 от 18.11.2020 12:00:04 | 0 / 0 | 320000 | аналитика: Группа", + "assistant_reply_first_line": "Точный якорь не подтвердился в текущем окне live-данных; показаны ближайшие доступные документы/операции по выбранному типу.", + "expected_intent": "bank_operations_by_counterparty", + "actual_intent": "bank_operations_by_counterparty", + "intent_match": true, + "expected_mode": "address_query", + "actual_mode": "address_query", + "mode_match": true, + "expected_reply_type": null, + "reply_match": true, + "semantic_pass": true, + "route_pass": true, + "route_health": "ok_or_factual", + "strict_policy": "route", + "strict_pass": true, + "selected_recipe": "address_bank_operations_by_counterparty_v1", + "missing_required_filters": [], + "match_failure_stage": "materialized_but_not_anchor_matched", + "match_failure_reason": "counterparty_anchor_not_matched_in_materialized_rows", + "rows_fetched": 20, + "rows_matched": 5, + "mcp_call_status": "matched_non_empty", + "limited_reason_category": null, + "llm_decomposition_applied": false, + "llm_decomposition_reason": "not_address_like", + "fallback_rule_hit": null, + "debug_payload": { + "trace_id": "address-2LbUeF5QNh", + "prompt_version": "address_query_runtime_v1", + "schema_version": "address_query_runtime_v1", + "fallback_type": "none", + "route_summary": null, + "fragments": [], + "requirements_extracted": [], + "coverage_report": { + "requirements_total": 0, + "requirements_covered": 0, + "requirements_uncovered": [], + "requirements_partially_covered": [], + "clarification_needed_for": [], + "out_of_scope_requirements": [] + }, + "routes": [], + "retrieval_status": [], + "retrieval_results": [], + "answer_grounding_check": { + "status": "grounded", + "route_subject_match": true, + "missing_requirements": [], + "reasons": [ + "no_address_or_deep_signal", + "address_mode_from_followup_context", + "shape_not_detected", + "intent_not_supported_in_v1", + "intent_from_followup_context", + "counterparty_from_followup_context", + "address_followup_context_applied", + "anchor_not_matched_fallback_rows" + ], + "why_included_summary": [], + "selection_reason_summary": [] + }, + "dropped_intent_segments": [], + "detected_mode": "address_query", + "detected_mode_confidence": "medium", + "query_shape": "UNKNOWN", + "query_shape_confidence": "low", + "detected_intent": "bank_operations_by_counterparty", + "detected_intent_confidence": "low", + "extracted_filters": { + "sort": "period_desc", + "limit": 20, + "period_from": "2020-11-01", + "period_to": "2020-11-30", + "counterparty": "счету" + }, + "missing_required_filters": [], + "selected_recipe": "address_bank_operations_by_counterparty_v1", + "mcp_call_status_legacy": "matched_non_empty", + "account_scope_mode": "preferred", + "account_scope_fallback_applied": false, + "anchor_type": "counterparty", + "anchor_value_raw": "счету", + "anchor_value_resolved": "счету", + "resolver_confidence": "medium", + "ambiguity_count": 0, + "match_failure_stage": "materialized_but_not_anchor_matched", + "match_failure_reason": "counterparty_anchor_not_matched_in_materialized_rows", + "mcp_call_status": "matched_non_empty", + "rows_fetched": 20, + "raw_rows_received": 20, + "rows_after_account_scope": 5, + "rows_after_recipe_filter": 0, + "rows_materialized": 5, + "rows_matched": 5, + "raw_row_keys_sample": [ + "Период", + "Регистратор", + "СчетДт", + "СчетКт", + "Сумма", + "Контрагент", + "Period", + "Registrator", + "Amount" + ], + "materialization_drop_reason": "none", + "account_token_raw": null, + "account_token_normalized": null, + "account_scope_fields_checked": [ + "account_dt", + "account_kt", + "registrator", + "analytics" + ], + "account_scope_match_strategy": "account_code_regex_plus_alias_map_v1", + "account_scope_drop_reason": "not_applicable", + "runtime_readiness": "LIVE_QUERYABLE_WITH_LIMITS", + "limited_reason_category": null, + "response_type": "FACTUAL_LIST", + "execution_lane": "address_query", + "llm_decomposition_applied": false, + "llm_decomposition_attempted": false, + "llm_provider_used": "local", + "llm_decomposition_trace_id": null, + "llm_decomposition_effective_message": "а теперь только ноябрь 2020", + "llm_decomposition_reason": "not_address_like", + "fallback_rule_hit": null, + "sanitized_user_message": "а теперь только ноябрь 2020", + "tool_gate_decision": "run_address_lane", + "tool_gate_reason": "followup_context_detected", + "answer_structure_v11": null, + "investigation_state_snapshot": null, + "normalized": null, + "normalizer_output": null + }, + "error_code": null, + "error_message": null + }, + { + "index": 8, + "id": "F008", + "question": "а теперь документы по нему", + "session": "chain_bank_svk_b", + "session_id": "asst-2026-04-02_Address_Followup_Context_Chains_2026-04-02_13-47-Run2-chain_bank_svk_b", + "status_code": 200, + "ok": true, + "elapsed_ms": 7093, + "reply_type": "factual", + "trace_id": "address-9SDINc9LTV", + "assistant_reply": "Точный якорь не подтвердился в текущем окне live-данных; показаны ближайшие доступные документы/операции по выбранному типу.\nСобран список документов по контрагенту (live address lane).\nСтрок отобрано: 5.\n1. 2020-11-30T12:00:07Z | Поступление на расчетный счет 00000000041 от 30.11.2020 12:00:07 | 0 / 0 | 38900 | аналитика: Группа\n3. 2020-11-19T12:00:04Z | Поступление на расчетный счет 00000000039 от 19.11.2020 12:00:04 | 0 / 0 | 3320600 | аналитика: Группа\n4. 2020-11-18T12:00:05Z | Поступление на расчетный счет 00000000038 от 18.11.2020 12:00:05 | 0 / 0 | 745300 | аналитика: Группа\n5. 2020-11-18T12:00:04Z | Поступление на расчетный счет 00000000037 от 18.11.2020 12:00:04 | 0 / 0 | 320000 | аналитика: Группа", + "assistant_reply_first_line": "Точный якорь не подтвердился в текущем окне live-данных; показаны ближайшие доступные документы/операции по выбранному типу.", + "expected_intent": "list_documents_by_counterparty", + "actual_intent": "list_documents_by_counterparty", + "intent_match": true, + "expected_mode": "address_query", + "actual_mode": "address_query", + "mode_match": true, + "expected_reply_type": null, + "reply_match": true, + "semantic_pass": true, + "route_pass": true, + "route_health": "ok_or_factual", + "strict_policy": "route", + "strict_pass": true, + "selected_recipe": "address_documents_by_counterparty_v1", + "missing_required_filters": [], + "match_failure_stage": "materialized_but_not_anchor_matched", + "match_failure_reason": "counterparty_anchor_not_matched_in_materialized_rows", + "rows_fetched": 20, + "rows_matched": 5, + "mcp_call_status": "matched_non_empty", + "limited_reason_category": null, + "llm_decomposition_applied": true, + "llm_decomposition_reason": "normalized_fragment_applied", + "fallback_rule_hit": null, + "debug_payload": { + "trace_id": "address-9SDINc9LTV", + "prompt_version": "address_query_runtime_v1", + "schema_version": "address_query_runtime_v1", + "fallback_type": "none", + "route_summary": null, + "fragments": [], + "requirements_extracted": [], + "coverage_report": { + "requirements_total": 0, + "requirements_covered": 0, + "requirements_uncovered": [], + "requirements_partially_covered": [], + "clarification_needed_for": [], + "out_of_scope_requirements": [] + }, + "routes": [], + "retrieval_status": [], + "retrieval_results": [], + "answer_grounding_check": { + "status": "grounded", + "route_subject_match": true, + "missing_requirements": [], + "reasons": [ + "loose_by_anchor_detected", + "document_list_signal_detected", + "documents_by_counterparty_signal_detected", + "period_from_followup_context", + "address_followup_context_applied", + "anchor_not_matched_fallback_rows" + ], + "why_included_summary": [], + "selection_reason_summary": [] + }, + "dropped_intent_segments": [], + "detected_mode": "address_query", + "detected_mode_confidence": "medium", + "query_shape": "DOCUMENT_LIST", + "query_shape_confidence": "medium", + "detected_intent": "list_documents_by_counterparty", + "detected_intent_confidence": "medium", + "extracted_filters": { + "sort": "period_desc", + "limit": 20, + "counterparty": "неуказанному", + "period_from": "2020-11-01", + "period_to": "2020-11-30" + }, + "missing_required_filters": [], + "selected_recipe": "address_documents_by_counterparty_v1", + "mcp_call_status_legacy": "matched_non_empty", + "account_scope_mode": "preferred", + "account_scope_fallback_applied": false, + "anchor_type": "counterparty", + "anchor_value_raw": "неуказанному", + "anchor_value_resolved": "неуказанному", + "resolver_confidence": "medium", + "ambiguity_count": 0, + "match_failure_stage": "materialized_but_not_anchor_matched", + "match_failure_reason": "counterparty_anchor_not_matched_in_materialized_rows", + "mcp_call_status": "matched_non_empty", + "rows_fetched": 20, + "raw_rows_received": 20, + "rows_after_account_scope": 5, + "rows_after_recipe_filter": 0, + "rows_materialized": 5, + "rows_matched": 5, + "raw_row_keys_sample": [ + "Период", + "Регистратор", + "СчетДт", + "СчетКт", + "Сумма", + "Контрагент", + "Period", + "Registrator", + "Amount" + ], + "materialization_drop_reason": "none", + "account_token_raw": null, + "account_token_normalized": null, + "account_scope_fields_checked": [ + "account_dt", + "account_kt", + "registrator", + "analytics" + ], + "account_scope_match_strategy": "account_code_regex_plus_alias_map_v1", + "account_scope_drop_reason": "not_applicable", + "runtime_readiness": "LIVE_QUERYABLE_WITH_LIMITS", + "limited_reason_category": null, + "response_type": "FACTUAL_LIST", + "execution_lane": "address_query", + "llm_decomposition_applied": true, + "llm_decomposition_attempted": true, + "llm_provider_used": "local", + "llm_decomposition_trace_id": "g7ib5UVL6Q27mZ", + "llm_decomposition_effective_message": "документы по неуказанному объекту", + "llm_decomposition_reason": "normalized_fragment_applied", + "fallback_rule_hit": null, + "sanitized_user_message": "а теперь документы по нему", + "tool_gate_decision": "run_address_lane", + "tool_gate_reason": "address_mode_classifier_detected", + "answer_structure_v11": null, + "investigation_state_snapshot": null, + "normalized": null, + "normalizer_output": { + "trace_id": "g7ib5UVL6Q27mZ", + "prompt_version": "normalizer_v2_0_2", + "applied": true, + "effective_message": "документы по неуказанному объекту" + } + }, + "error_code": null, + "error_message": null + }, + { + "index": 9, + "id": "F009", + "question": "и остаток по 51 на ту же дату", + "session": "chain_bank_svk_b", + "session_id": "asst-2026-04-02_Address_Followup_Context_Chains_2026-04-02_13-47-Run2-chain_bank_svk_b", + "status_code": 200, + "ok": true, + "elapsed_ms": 6017, + "reply_type": "factual", + "trace_id": "address-RKOfUC4rxH", + "assistant_reply": "Адресный срез по счету собран (по движениям live MCP).\nСтрок отобрано: 200.\nСумма по отобранным движениям: 28075894.400000002.\n1. 2022-10-03T12:00:00Z | Списание с расчетного счета 00000000018 от 03.10.2022 12:00:00 | 76.03 / 51 | 355.2\n2. 2022-08-10T12:00:00Z | Списание с расчетного счета 00000000017 от 10.08.2022 12:00:00 | 91.02 / 51 | 990\n3. 2022-07-28T12:00:00Z | Списание с расчетного счета 00000000016 от 28.07.2022 12:00:00 | 69.11 / 51 | 1000\n4. 2022-07-11T12:00:00Z | Списание с расчетного счета 00000000014 от 11.07.2022 12:00:00 | 76.05 / 51 | 280", + "assistant_reply_first_line": "Адресный срез по счету собран (по движениям live MCP).", + "expected_intent": "account_balance_snapshot", + "actual_intent": "account_balance_snapshot", + "intent_match": true, + "expected_mode": "address_query", + "actual_mode": "address_query", + "mode_match": true, + "expected_reply_type": null, + "reply_match": true, + "semantic_pass": true, + "route_pass": true, + "route_health": "ok_or_factual", + "strict_policy": "route", + "strict_pass": true, + "selected_recipe": "address_movements_account_snapshot_v1", + "missing_required_filters": [], + "match_failure_stage": "none", + "match_failure_reason": null, + "rows_fetched": 200, + "rows_matched": 200, + "mcp_call_status": "matched_non_empty", + "limited_reason_category": null, + "llm_decomposition_applied": true, + "llm_decomposition_reason": "normalized_fragment_applied", + "fallback_rule_hit": null, + "debug_payload": { + "trace_id": "address-RKOfUC4rxH", + "prompt_version": "address_query_runtime_v1", + "schema_version": "address_query_runtime_v1", + "fallback_type": "none", + "route_summary": null, + "fragments": [], + "requirements_extracted": [], + "coverage_report": { + "requirements_total": 0, + "requirements_covered": 0, + "requirements_uncovered": [], + "requirements_partially_covered": [], + "clarification_needed_for": [], + "out_of_scope_requirements": [] + }, + "routes": [], + "retrieval_status": [], + "retrieval_results": [], + "answer_grounding_check": { + "status": "grounded", + "route_subject_match": true, + "missing_requirements": [], + "reasons": [ + "address_action_detected", + "address_entity_detected", + "aggregate_signal_detected", + "account_balance_signal_detected" + ], + "why_included_summary": [], + "selection_reason_summary": [] + }, + "dropped_intent_segments": [], + "detected_mode": "address_query", + "detected_mode_confidence": "high", + "query_shape": "AGGREGATE_LOOKUP", + "query_shape_confidence": "high", + "detected_intent": "account_balance_snapshot", + "detected_intent_confidence": "high", + "extracted_filters": { + "sort": "period_desc", + "limit": 20, + "account": "51", + "as_of_date": "2026-04-02" + }, + "missing_required_filters": [], + "selected_recipe": "address_movements_account_snapshot_v1", + "mcp_call_status_legacy": "matched_non_empty", + "account_scope_mode": "strict", + "account_scope_fallback_applied": false, + "anchor_type": "account", + "anchor_value_raw": "51", + "anchor_value_resolved": "51", + "resolver_confidence": "high", + "ambiguity_count": 0, + "match_failure_stage": "none", + "match_failure_reason": null, + "mcp_call_status": "matched_non_empty", + "rows_fetched": 200, + "raw_rows_received": 200, + "rows_after_account_scope": 200, + "rows_after_recipe_filter": 200, + "rows_materialized": 200, + "rows_matched": 200, + "raw_row_keys_sample": [ + "Период", + "Регистратор", + "СчетДт", + "СчетКт", + "Сумма", + "Period", + "Registrator", + "AccountDt", + "AccountKt", + "Amount" + ], + "materialization_drop_reason": "none", + "account_token_raw": "51", + "account_token_normalized": "51", + "account_scope_fields_checked": [ + "account_dt", + "account_kt", + "registrator", + "analytics" + ], + "account_scope_match_strategy": "account_code_regex_plus_alias_map_v1", + "account_scope_drop_reason": "rows_remaining_after_scope_filter", + "runtime_readiness": "LIVE_QUERYABLE_WITH_LIMITS", + "limited_reason_category": null, + "response_type": "FACTUAL_SUMMARY", + "execution_lane": "address_query", + "llm_decomposition_applied": true, + "llm_decomposition_attempted": true, + "llm_provider_used": "local", + "llm_decomposition_trace_id": "e6iPG1KOXV8iNe", + "llm_decomposition_effective_message": "остаток по счету 51 на текущую дату", + "llm_decomposition_reason": "normalized_fragment_applied", + "fallback_rule_hit": null, + "sanitized_user_message": "и остаток по 51 на ту же дату", + "tool_gate_decision": "run_address_lane", + "tool_gate_reason": "address_mode_classifier_detected", + "answer_structure_v11": null, + "investigation_state_snapshot": null, + "normalized": null, + "normalizer_output": { + "trace_id": "e6iPG1KOXV8iNe", + "prompt_version": "normalizer_v2_0_2", + "applied": true, + "effective_message": "остаток по счету 51 на текущую дату" + } + }, + "error_code": null, + "error_message": null + }, + { + "index": 10, + "id": "F010", + "question": "а теперь только май 2020", + "session": "chain_bank_svk_b", + "session_id": "asst-2026-04-02_Address_Followup_Context_Chains_2026-04-02_13-47-Run2-chain_bank_svk_b", + "status_code": 200, + "ok": true, + "elapsed_ms": 950, + "reply_type": "factual", + "trace_id": "address-b5tw9UEWB-", + "assistant_reply": "Адресный срез по счету собран (по движениям live MCP).\nСтрок отобрано: 24.\nСумма по отобранным движениям: 2234531.1100000003.\n1. 2020-05-29T12:00:02Z | Списание с расчетного счета 00000000151 от 29.05.2020 12:00:02 | 91.02 / 51 | 60\n2. 2020-05-28T20:17:50Z | Списание с расчетного счета 00000000150 от 28.05.2020 20:17:50 | 70 / 51 | 50\n3. 2020-05-28T20:17:24Z | Списание с расчетного счета 00000000149 от 28.05.2020 20:17:24 | 91.02 / 51 | 35\n4. 2020-05-22T10:14:43Z | Списание с расчетного счета 00000000148 от 22.05.2020 10:14:43 | 60.02 / 51 | 142299", + "assistant_reply_first_line": "Адресный срез по счету собран (по движениям live MCP).", + "expected_intent": "account_balance_snapshot", + "actual_intent": "account_balance_snapshot", + "intent_match": true, + "expected_mode": "address_query", + "actual_mode": "address_query", + "mode_match": true, + "expected_reply_type": null, + "reply_match": true, + "semantic_pass": true, + "route_pass": true, + "route_health": "ok_or_factual", + "strict_policy": "route", + "strict_pass": true, + "selected_recipe": "address_movements_account_snapshot_v1", + "missing_required_filters": [], + "match_failure_stage": "none", + "match_failure_reason": null, + "rows_fetched": 24, + "rows_matched": 24, + "mcp_call_status": "matched_non_empty", + "limited_reason_category": null, + "llm_decomposition_applied": false, + "llm_decomposition_reason": "not_address_like", + "fallback_rule_hit": null, + "debug_payload": { + "trace_id": "address-b5tw9UEWB-", + "prompt_version": "address_query_runtime_v1", + "schema_version": "address_query_runtime_v1", + "fallback_type": "none", + "route_summary": null, + "fragments": [], + "requirements_extracted": [], + "coverage_report": { + "requirements_total": 0, + "requirements_covered": 0, + "requirements_uncovered": [], + "requirements_partially_covered": [], + "clarification_needed_for": [], + "out_of_scope_requirements": [] + }, + "routes": [], + "retrieval_status": [], + "retrieval_results": [], + "answer_grounding_check": { + "status": "grounded", + "route_subject_match": true, + "missing_requirements": [], + "reasons": [ + "no_address_or_deep_signal", + "address_mode_from_followup_context", + "shape_not_detected", + "intent_not_supported_in_v1", + "intent_from_followup_context", + "account_from_followup_context", + "address_followup_context_applied" + ], + "why_included_summary": [], + "selection_reason_summary": [] + }, + "dropped_intent_segments": [], + "detected_mode": "address_query", + "detected_mode_confidence": "medium", + "query_shape": "UNKNOWN", + "query_shape_confidence": "low", + "detected_intent": "account_balance_snapshot", + "detected_intent_confidence": "low", + "extracted_filters": { + "sort": "period_desc", + "limit": 20, + "period_from": "2020-05-01", + "period_to": "2020-05-31", + "as_of_date": "2020-05-31", + "account": "51" + }, + "missing_required_filters": [], + "selected_recipe": "address_movements_account_snapshot_v1", + "mcp_call_status_legacy": "matched_non_empty", + "account_scope_mode": "strict", + "account_scope_fallback_applied": false, + "anchor_type": "account", + "anchor_value_raw": "51", + "anchor_value_resolved": "51", + "resolver_confidence": "high", + "ambiguity_count": 0, + "match_failure_stage": "none", + "match_failure_reason": null, + "mcp_call_status": "matched_non_empty", + "rows_fetched": 24, + "raw_rows_received": 24, + "rows_after_account_scope": 24, + "rows_after_recipe_filter": 24, + "rows_materialized": 24, + "rows_matched": 24, + "raw_row_keys_sample": [ + "Период", + "Регистратор", + "СчетДт", + "СчетКт", + "Сумма", + "Period", + "Registrator", + "AccountDt", + "AccountKt", + "Amount" + ], + "materialization_drop_reason": "none", + "account_token_raw": "51", + "account_token_normalized": "51", + "account_scope_fields_checked": [ + "account_dt", + "account_kt", + "registrator", + "analytics" + ], + "account_scope_match_strategy": "account_code_regex_plus_alias_map_v1", + "account_scope_drop_reason": "rows_remaining_after_scope_filter", + "runtime_readiness": "LIVE_QUERYABLE_WITH_LIMITS", + "limited_reason_category": null, + "response_type": "FACTUAL_SUMMARY", + "execution_lane": "address_query", + "llm_decomposition_applied": false, + "llm_decomposition_attempted": false, + "llm_provider_used": "local", + "llm_decomposition_trace_id": null, + "llm_decomposition_effective_message": "а теперь только май 2020", + "llm_decomposition_reason": "not_address_like", + "fallback_rule_hit": null, + "sanitized_user_message": "а теперь только май 2020", + "tool_gate_decision": "run_address_lane", + "tool_gate_reason": "followup_context_detected", + "answer_structure_v11": null, + "investigation_state_snapshot": null, + "normalized": null, + "normalizer_output": null + }, + "error_code": null, + "error_message": null + }, + { + "index": 11, + "id": "F011", + "question": "Покажи сальдо по счету 60 на 2020-12-31", + "session": "chain_balance_c", + "session_id": "asst-2026-04-02_Address_Followup_Context_Chains_2026-04-02_13-47-Run2-chain_balance_c", + "status_code": 200, + "ok": true, + "elapsed_ms": 6076, + "reply_type": "partial_coverage", + "trace_id": "address-yZdOisXUhK", + "assistant_reply": "В live-данных по текущему фильтру записи не найдены.\nПричина: по выбранным фильтрам в live-выборке нет строк.\nЧто нужно уточнить: уточните период, контрагента, договор или снимите часть фильтров.", + "assistant_reply_first_line": "В live-данных по текущему фильтру записи не найдены.", + "expected_intent": "account_balance_snapshot", + "actual_intent": "account_balance_snapshot", + "intent_match": true, + "expected_mode": "address_query", + "actual_mode": "address_query", + "mode_match": true, + "expected_reply_type": null, + "reply_match": true, + "semantic_pass": true, + "route_pass": true, + "route_health": "partial_non_blocking", + "strict_policy": "route", + "strict_pass": true, + "selected_recipe": "address_movements_account_snapshot_v1", + "missing_required_filters": [], + "match_failure_stage": "none", + "match_failure_reason": null, + "rows_fetched": 0, + "rows_matched": 0, + "mcp_call_status": "no_raw_rows", + "limited_reason_category": "empty_match", + "llm_decomposition_applied": true, + "llm_decomposition_reason": "normalized_fragment_applied", + "fallback_rule_hit": null, + "debug_payload": { + "trace_id": "address-yZdOisXUhK", + "prompt_version": "address_query_runtime_v1", + "schema_version": "address_query_runtime_v1", + "fallback_type": "partial", + "route_summary": null, + "fragments": [], + "requirements_extracted": [], + "coverage_report": { + "requirements_total": 0, + "requirements_covered": 0, + "requirements_uncovered": [], + "requirements_partially_covered": [], + "clarification_needed_for": [], + "out_of_scope_requirements": [] + }, + "routes": [], + "retrieval_status": [], + "retrieval_results": [], + "answer_grounding_check": { + "status": "partial", + "route_subject_match": true, + "missing_requirements": [], + "reasons": [ + "address_action_detected", + "address_entity_detected", + "aggregate_signal_detected", + "account_balance_signal_detected" + ], + "why_included_summary": [], + "selection_reason_summary": [] + }, + "dropped_intent_segments": [], + "detected_mode": "address_query", + "detected_mode_confidence": "high", + "query_shape": "AGGREGATE_LOOKUP", + "query_shape_confidence": "high", + "detected_intent": "account_balance_snapshot", + "detected_intent_confidence": "high", + "extracted_filters": { + "sort": "period_desc", + "limit": 20, + "account": "60", + "period_from": "2020-12-01", + "period_to": "2020-12-31", + "as_of_date": "2020-12-31" + }, + "missing_required_filters": [], + "selected_recipe": "address_movements_account_snapshot_v1", + "mcp_call_status_legacy": "no_raw_rows", + "account_scope_mode": "strict", + "account_scope_fallback_applied": false, + "anchor_type": "account", + "anchor_value_raw": "60", + "anchor_value_resolved": "60", + "resolver_confidence": "high", + "ambiguity_count": 0, + "match_failure_stage": "none", + "match_failure_reason": null, + "mcp_call_status": "no_raw_rows", + "rows_fetched": 0, + "raw_rows_received": 0, + "rows_after_account_scope": 0, + "rows_after_recipe_filter": 0, + "rows_materialized": 0, + "rows_matched": 0, + "raw_row_keys_sample": [], + "materialization_drop_reason": "none", + "account_token_raw": "60", + "account_token_normalized": "60", + "account_scope_fields_checked": [ + "account_dt", + "account_kt", + "registrator", + "analytics" + ], + "account_scope_match_strategy": "account_code_regex_plus_alias_map_v1", + "account_scope_drop_reason": "rows_remaining_after_scope_filter", + "runtime_readiness": "LIVE_QUERYABLE_WITH_LIMITS", + "limited_reason_category": "empty_match", + "response_type": "LIMITED_WITH_REASON", + "execution_lane": "address_query", + "llm_decomposition_applied": true, + "llm_decomposition_attempted": true, + "llm_provider_used": "local", + "llm_decomposition_trace_id": "NM1g52cpDtD9pg", + "llm_decomposition_effective_message": "Показать сальдо по счету 60 на конец декабря 2020 года (2020-12-31)", + "llm_decomposition_reason": "normalized_fragment_applied", + "fallback_rule_hit": null, + "sanitized_user_message": "покажи сальдо по счету 60 на 2020-12-31", + "tool_gate_decision": "run_address_lane", + "tool_gate_reason": "address_mode_classifier_detected", + "answer_structure_v11": null, + "investigation_state_snapshot": null, + "normalized": null, + "normalizer_output": { + "trace_id": "NM1g52cpDtD9pg", + "prompt_version": "normalizer_v2_0_2", + "applied": true, + "effective_message": "Показать сальдо по счету 60 на конец декабря 2020 года (2020-12-31)" + } + }, + "error_code": null, + "error_message": null + }, + { + "index": 12, + "id": "F012", + "question": "а теперь только май 2020", + "session": "chain_balance_c", + "session_id": "asst-2026-04-02_Address_Followup_Context_Chains_2026-04-02_13-47-Run2-chain_balance_c", + "status_code": 200, + "ok": true, + "elapsed_ms": 1004, + "reply_type": "factual", + "trace_id": "address-tEPsC2Yuqr", + "assistant_reply": "Адресный срез по счету собран (по движениям live MCP).\nСтрок отобрано: 6.\nСумма по отобранным движениям: 849499.\n1. 2020-05-22T10:14:43Z | Списание с расчетного счета 00000000148 от 22.05.2020 10:14:43 | 60.02 / 51 | 142299\n2. 2020-05-22T10:12:50Z | Списание с расчетного счета 00000000147 от 22.05.2020 10:12:50 | 60.01 / 51 | 75367\n3. 2020-05-22T10:12:50Z | Списание с расчетного счета 00000000147 от 22.05.2020 10:12:50 | 60.01 / 51 | 211833\n4. 2020-05-18T12:00:02Z | Списание с расчетного счета 00000000145 от 18.05.2020 12:00:02 | 60.01 / 51 | 187967", + "assistant_reply_first_line": "Адресный срез по счету собран (по движениям live MCP).", + "expected_intent": "account_balance_snapshot", + "actual_intent": "account_balance_snapshot", + "intent_match": true, + "expected_mode": "address_query", + "actual_mode": "address_query", + "mode_match": true, + "expected_reply_type": null, + "reply_match": true, + "semantic_pass": true, + "route_pass": true, + "route_health": "ok_or_factual", + "strict_policy": "route", + "strict_pass": true, + "selected_recipe": "address_movements_account_snapshot_v1", + "missing_required_filters": [], + "match_failure_stage": "none", + "match_failure_reason": null, + "rows_fetched": 6, + "rows_matched": 6, + "mcp_call_status": "matched_non_empty", + "limited_reason_category": null, + "llm_decomposition_applied": false, + "llm_decomposition_reason": "not_address_like", + "fallback_rule_hit": null, + "debug_payload": { + "trace_id": "address-tEPsC2Yuqr", + "prompt_version": "address_query_runtime_v1", + "schema_version": "address_query_runtime_v1", + "fallback_type": "none", + "route_summary": null, + "fragments": [], + "requirements_extracted": [], + "coverage_report": { + "requirements_total": 0, + "requirements_covered": 0, + "requirements_uncovered": [], + "requirements_partially_covered": [], + "clarification_needed_for": [], + "out_of_scope_requirements": [] + }, + "routes": [], + "retrieval_status": [], + "retrieval_results": [], + "answer_grounding_check": { + "status": "grounded", + "route_subject_match": true, + "missing_requirements": [], + "reasons": [ + "no_address_or_deep_signal", + "address_mode_from_followup_context", + "shape_not_detected", + "intent_not_supported_in_v1", + "intent_from_followup_context", + "account_from_followup_context", + "address_followup_context_applied" + ], + "why_included_summary": [], + "selection_reason_summary": [] + }, + "dropped_intent_segments": [], + "detected_mode": "address_query", + "detected_mode_confidence": "medium", + "query_shape": "UNKNOWN", + "query_shape_confidence": "low", + "detected_intent": "account_balance_snapshot", + "detected_intent_confidence": "low", + "extracted_filters": { + "sort": "period_desc", + "limit": 20, + "period_from": "2020-05-01", + "period_to": "2020-05-31", + "as_of_date": "2020-05-31", + "account": "60" + }, + "missing_required_filters": [], + "selected_recipe": "address_movements_account_snapshot_v1", + "mcp_call_status_legacy": "matched_non_empty", + "account_scope_mode": "strict", + "account_scope_fallback_applied": false, + "anchor_type": "account", + "anchor_value_raw": "60", + "anchor_value_resolved": "60", + "resolver_confidence": "high", + "ambiguity_count": 0, + "match_failure_stage": "none", + "match_failure_reason": null, + "mcp_call_status": "matched_non_empty", + "rows_fetched": 6, + "raw_rows_received": 6, + "rows_after_account_scope": 6, + "rows_after_recipe_filter": 6, + "rows_materialized": 6, + "rows_matched": 6, + "raw_row_keys_sample": [ + "Период", + "Регистратор", + "СчетДт", + "СчетКт", + "Сумма", + "Period", + "Registrator", + "AccountDt", + "AccountKt", + "Amount" + ], + "materialization_drop_reason": "none", + "account_token_raw": "60", + "account_token_normalized": "60", + "account_scope_fields_checked": [ + "account_dt", + "account_kt", + "registrator", + "analytics" + ], + "account_scope_match_strategy": "account_code_regex_plus_alias_map_v1", + "account_scope_drop_reason": "rows_remaining_after_scope_filter", + "runtime_readiness": "LIVE_QUERYABLE_WITH_LIMITS", + "limited_reason_category": null, + "response_type": "FACTUAL_SUMMARY", + "execution_lane": "address_query", + "llm_decomposition_applied": false, + "llm_decomposition_attempted": false, + "llm_provider_used": "local", + "llm_decomposition_trace_id": null, + "llm_decomposition_effective_message": "а теперь только май 2020", + "llm_decomposition_reason": "not_address_like", + "fallback_rule_hit": null, + "sanitized_user_message": "а теперь только май 2020", + "tool_gate_decision": "run_address_lane", + "tool_gate_reason": "followup_context_detected", + "answer_structure_v11": null, + "investigation_state_snapshot": null, + "normalized": null, + "normalizer_output": null + }, + "error_code": null, + "error_message": null + }, + { + "index": 13, + "id": "F013", + "question": "а на ту же дату по 62", + "session": "chain_balance_c", + "session_id": "asst-2026-04-02_Address_Followup_Context_Chains_2026-04-02_13-47-Run2-chain_balance_c", + "status_code": 200, + "ok": true, + "elapsed_ms": 1046, + "reply_type": "factual", + "trace_id": "address-JqFSnIr_Rq", + "assistant_reply": "Адресный срез по счету собран (по движениям live MCP).\nСтрок отобрано: 4.\nСумма по отобранным движениям: 2545546.24.\n1. 2020-05-21T12:00:00Z | Поступление на расчетный счет 00000000023 от 21.05.2020 12:00:00 | 51 / 62.02 | 250546.24\n2. 2020-05-18T12:00:01Z | Реализация товаров и услуг 00000000002 от 18.05.2020 12:00:01 | 62.01 / 90.01.1 | 765000\n3. 2020-05-18T12:00:01Z | Реализация товаров и услуг 00000000002 от 18.05.2020 12:00:01 | 62.02 / 62.01 | 765000\n4. 2020-05-15T12:00:02Z | Поступление на расчетный счет 00000000022 от 15.05.2020 12:00:02 | 51 / 62.02 | 765000", + "assistant_reply_first_line": "Адресный срез по счету собран (по движениям live MCP).", + "expected_intent": "account_balance_snapshot", + "actual_intent": "account_balance_snapshot", + "intent_match": true, + "expected_mode": "address_query", + "actual_mode": "address_query", + "mode_match": true, + "expected_reply_type": null, + "reply_match": true, + "semantic_pass": true, + "route_pass": true, + "route_health": "ok_or_factual", + "strict_policy": "route", + "strict_pass": true, + "selected_recipe": "address_movements_account_snapshot_v1", + "missing_required_filters": [], + "match_failure_stage": "none", + "match_failure_reason": null, + "rows_fetched": 4, + "rows_matched": 4, + "mcp_call_status": "matched_non_empty", + "limited_reason_category": null, + "llm_decomposition_applied": false, + "llm_decomposition_reason": "not_address_like", + "fallback_rule_hit": null, + "debug_payload": { + "trace_id": "address-JqFSnIr_Rq", + "prompt_version": "address_query_runtime_v1", + "schema_version": "address_query_runtime_v1", + "fallback_type": "none", + "route_summary": null, + "fragments": [], + "requirements_extracted": [], + "coverage_report": { + "requirements_total": 0, + "requirements_covered": 0, + "requirements_uncovered": [], + "requirements_partially_covered": [], + "clarification_needed_for": [], + "out_of_scope_requirements": [] + }, + "routes": [], + "retrieval_status": [], + "retrieval_results": [], + "answer_grounding_check": { + "status": "grounded", + "route_subject_match": true, + "missing_requirements": [], + "reasons": [ + "no_address_or_deep_signal", + "address_mode_from_followup_context", + "shape_not_detected", + "intent_not_supported_in_v1", + "intent_adjusted_to_balance_followup_context", + "as_of_date_from_followup_context", + "period_from_followup_context", + "address_followup_context_applied" + ], + "why_included_summary": [], + "selection_reason_summary": [] + }, + "dropped_intent_segments": [], + "detected_mode": "address_query", + "detected_mode_confidence": "medium", + "query_shape": "UNKNOWN", + "query_shape_confidence": "low", + "detected_intent": "account_balance_snapshot", + "detected_intent_confidence": "low", + "extracted_filters": { + "sort": "period_desc", + "limit": 20, + "account": "62", + "as_of_date": "2020-05-31", + "period_from": "2020-05-01", + "period_to": "2020-05-31" + }, + "missing_required_filters": [], + "selected_recipe": "address_movements_account_snapshot_v1", + "mcp_call_status_legacy": "matched_non_empty", + "account_scope_mode": "strict", + "account_scope_fallback_applied": false, + "anchor_type": "account", + "anchor_value_raw": "62", + "anchor_value_resolved": "62", + "resolver_confidence": "high", + "ambiguity_count": 0, + "match_failure_stage": "none", + "match_failure_reason": null, + "mcp_call_status": "matched_non_empty", + "rows_fetched": 4, + "raw_rows_received": 4, + "rows_after_account_scope": 4, + "rows_after_recipe_filter": 4, + "rows_materialized": 4, + "rows_matched": 4, + "raw_row_keys_sample": [ + "Период", + "Регистратор", + "СчетДт", + "СчетКт", + "Сумма", + "Period", + "Registrator", + "AccountDt", + "AccountKt", + "Amount" + ], + "materialization_drop_reason": "none", + "account_token_raw": "62", + "account_token_normalized": "62", + "account_scope_fields_checked": [ + "account_dt", + "account_kt", + "registrator", + "analytics" + ], + "account_scope_match_strategy": "account_code_regex_plus_alias_map_v1", + "account_scope_drop_reason": "rows_remaining_after_scope_filter", + "runtime_readiness": "LIVE_QUERYABLE_WITH_LIMITS", + "limited_reason_category": null, + "response_type": "FACTUAL_SUMMARY", + "execution_lane": "address_query", + "llm_decomposition_applied": false, + "llm_decomposition_attempted": false, + "llm_provider_used": "local", + "llm_decomposition_trace_id": null, + "llm_decomposition_effective_message": "а на ту же дату по 62", + "llm_decomposition_reason": "not_address_like", + "fallback_rule_hit": null, + "sanitized_user_message": "а на ту же дату по 62", + "tool_gate_decision": "run_address_lane", + "tool_gate_reason": "address_signal_detected", + "answer_structure_v11": null, + "investigation_state_snapshot": null, + "normalized": null, + "normalizer_output": null + }, + "error_code": null, + "error_message": null + }, + { + "index": 14, + "id": "F014", + "question": "раскрой 62 документами на ту же дату", + "session": "chain_balance_c", + "session_id": "asst-2026-04-02_Address_Followup_Context_Chains_2026-04-02_13-47-Run2-chain_balance_c", + "status_code": 200, + "ok": true, + "elapsed_ms": 6067, + "reply_type": "factual", + "trace_id": "address-60wmdMfrtw", + "assistant_reply": "Собран drilldown документов, формирующих остаток по счету на указанную дату.\nДокументных строк отобрано: 4.\nСумма по отобранным движениям: 2545546.24.\n1. 2020-05-21T12:00:00Z | Поступление на расчетный счет 00000000023 от 21.05.2020 12:00:00 | 51 / 62.02 | 250546.24\n2. 2020-05-18T12:00:01Z | Реализация товаров и услуг 00000000002 от 18.05.2020 12:00:01 | 62.01 / 90.01.1 | 765000\n3. 2020-05-18T12:00:01Z | Реализация товаров и услуг 00000000002 от 18.05.2020 12:00:01 | 62.02 / 62.01 | 765000\n4. 2020-05-15T12:00:02Z | Поступление на расчетный счет 00000000022 от 15.05.2020 12:00:02 | 51 / 62.02 | 765000\nМожно уточнить выборку по контрагенту, договору или периоду.", + "assistant_reply_first_line": "Собран drilldown документов, формирующих остаток по счету на указанную дату.", + "expected_intent": "documents_forming_balance", + "actual_intent": "documents_forming_balance", + "intent_match": true, + "expected_mode": "address_query", + "actual_mode": "address_query", + "mode_match": true, + "expected_reply_type": null, + "reply_match": true, + "semantic_pass": true, + "route_pass": true, + "route_health": "ok_or_factual", + "strict_policy": "route", + "strict_pass": true, + "selected_recipe": "address_documents_forming_balance_v1", + "missing_required_filters": [], + "match_failure_stage": "none", + "match_failure_reason": null, + "rows_fetched": 4, + "rows_matched": 4, + "mcp_call_status": "matched_non_empty", + "limited_reason_category": null, + "llm_decomposition_applied": true, + "llm_decomposition_reason": "normalized_fragment_applied", + "fallback_rule_hit": null, + "debug_payload": { + "trace_id": "address-60wmdMfrtw", + "prompt_version": "address_query_runtime_v1", + "schema_version": "address_query_runtime_v1", + "fallback_type": "none", + "route_summary": null, + "fragments": [], + "requirements_extracted": [], + "coverage_report": { + "requirements_total": 0, + "requirements_covered": 0, + "requirements_uncovered": [], + "requirements_partially_covered": [], + "clarification_needed_for": [], + "out_of_scope_requirements": [] + }, + "routes": [], + "retrieval_status": [], + "retrieval_results": [], + "answer_grounding_check": { + "status": "grounded", + "route_subject_match": true, + "missing_requirements": [], + "reasons": [ + "address_entity_detected", + "document_list_signal_detected", + "documents_by_counterparty_signal_detected", + "intent_adjusted_to_balance_followup_context", + "as_of_date_from_followup_context", + "period_from_followup_context", + "address_followup_context_applied" + ], + "why_included_summary": [], + "selection_reason_summary": [] + }, + "dropped_intent_segments": [], + "detected_mode": "address_query", + "detected_mode_confidence": "medium", + "query_shape": "DOCUMENT_LIST", + "query_shape_confidence": "medium", + "detected_intent": "documents_forming_balance", + "detected_intent_confidence": "low", + "extracted_filters": { + "sort": "period_desc", + "limit": 20, + "account": "62", + "as_of_date": "2020-05-31", + "period_from": "2020-05-01", + "period_to": "2020-05-31" + }, + "missing_required_filters": [], + "selected_recipe": "address_documents_forming_balance_v1", + "mcp_call_status_legacy": "matched_non_empty", + "account_scope_mode": "strict", + "account_scope_fallback_applied": false, + "anchor_type": "account", + "anchor_value_raw": "62", + "anchor_value_resolved": "62", + "resolver_confidence": "high", + "ambiguity_count": 0, + "match_failure_stage": "none", + "match_failure_reason": null, + "mcp_call_status": "matched_non_empty", + "rows_fetched": 4, + "raw_rows_received": 4, + "rows_after_account_scope": 4, + "rows_after_recipe_filter": 4, + "rows_materialized": 4, + "rows_matched": 4, + "raw_row_keys_sample": [ + "Период", + "Регистратор", + "СчетДт", + "СчетКт", + "Сумма", + "Period", + "Registrator", + "AccountDt", + "AccountKt", + "Amount" + ], + "materialization_drop_reason": "none", + "account_token_raw": "62", + "account_token_normalized": "62", + "account_scope_fields_checked": [ + "account_dt", + "account_kt", + "registrator", + "analytics" + ], + "account_scope_match_strategy": "account_code_regex_plus_alias_map_v1", + "account_scope_drop_reason": "rows_remaining_after_scope_filter", + "runtime_readiness": "LIVE_QUERYABLE_WITH_LIMITS", + "limited_reason_category": null, + "response_type": "FACTUAL_LIST", + "execution_lane": "address_query", + "llm_decomposition_applied": true, + "llm_decomposition_attempted": true, + "llm_provider_used": "local", + "llm_decomposition_trace_id": "wIbzACLhXA46ET", + "llm_decomposition_effective_message": "раскрыть счет 62 документами, указанными на ту же дату", + "llm_decomposition_reason": "normalized_fragment_applied", + "fallback_rule_hit": null, + "sanitized_user_message": "раскрой 62 документами на ту же дату", + "tool_gate_decision": "run_address_lane", + "tool_gate_reason": "address_mode_classifier_detected", + "answer_structure_v11": null, + "investigation_state_snapshot": null, + "normalized": null, + "normalizer_output": { + "trace_id": "wIbzACLhXA46ET", + "prompt_version": "normalizer_v2_0_2", + "applied": true, + "effective_message": "раскрыть счет 62 документами, указанными на ту же дату" + } + }, + "error_code": null, + "error_message": null + }, + { + "index": 15, + "id": "F015", + "question": "вернись на 2020-12-31 по 60", + "session": "chain_balance_c", + "session_id": "asst-2026-04-02_Address_Followup_Context_Chains_2026-04-02_13-47-Run2-chain_balance_c", + "status_code": 200, + "ok": true, + "elapsed_ms": 1018, + "reply_type": "partial_coverage", + "trace_id": "address-Wj46LB_CQh", + "assistant_reply": "В live-данных по текущему фильтру записи не найдены.\nПричина: по выбранным фильтрам в live-выборке нет строк.\nЧто нужно уточнить: уточните период, контрагента, договор или снимите часть фильтров.", + "assistant_reply_first_line": "В live-данных по текущему фильтру записи не найдены.", + "expected_intent": "account_balance_snapshot", + "actual_intent": "account_balance_snapshot", + "intent_match": true, + "expected_mode": "address_query", + "actual_mode": "address_query", + "mode_match": true, + "expected_reply_type": null, + "reply_match": true, + "semantic_pass": true, + "route_pass": true, + "route_health": "partial_non_blocking", + "strict_policy": "route", + "strict_pass": true, + "selected_recipe": "address_movements_account_snapshot_v1", + "missing_required_filters": [], + "match_failure_stage": "none", + "match_failure_reason": null, + "rows_fetched": 0, + "rows_matched": 0, + "mcp_call_status": "no_raw_rows", + "limited_reason_category": "empty_match", + "llm_decomposition_applied": false, + "llm_decomposition_reason": "not_address_like", + "fallback_rule_hit": null, + "debug_payload": { + "trace_id": "address-Wj46LB_CQh", + "prompt_version": "address_query_runtime_v1", + "schema_version": "address_query_runtime_v1", + "fallback_type": "partial", + "route_summary": null, + "fragments": [], + "requirements_extracted": [], + "coverage_report": { + "requirements_total": 0, + "requirements_covered": 0, + "requirements_uncovered": [], + "requirements_partially_covered": [], + "clarification_needed_for": [], + "out_of_scope_requirements": [] + }, + "routes": [], + "retrieval_status": [], + "retrieval_results": [], + "answer_grounding_check": { + "status": "partial", + "route_subject_match": true, + "missing_requirements": [], + "reasons": [ + "no_address_or_deep_signal", + "address_mode_from_followup_context", + "shape_not_detected", + "intent_not_supported_in_v1", + "intent_adjusted_to_balance_followup_context", + "address_followup_context_applied" + ], + "why_included_summary": [], + "selection_reason_summary": [] + }, + "dropped_intent_segments": [], + "detected_mode": "address_query", + "detected_mode_confidence": "medium", + "query_shape": "UNKNOWN", + "query_shape_confidence": "low", + "detected_intent": "account_balance_snapshot", + "detected_intent_confidence": "low", + "extracted_filters": { + "sort": "period_desc", + "limit": 20, + "account": "60", + "period_from": "2020-12-01", + "period_to": "2020-12-31", + "as_of_date": "2020-12-31" + }, + "missing_required_filters": [], + "selected_recipe": "address_movements_account_snapshot_v1", + "mcp_call_status_legacy": "no_raw_rows", + "account_scope_mode": "strict", + "account_scope_fallback_applied": false, + "anchor_type": "account", + "anchor_value_raw": "60", + "anchor_value_resolved": "60", + "resolver_confidence": "high", + "ambiguity_count": 0, + "match_failure_stage": "none", + "match_failure_reason": null, + "mcp_call_status": "no_raw_rows", + "rows_fetched": 0, + "raw_rows_received": 0, + "rows_after_account_scope": 0, + "rows_after_recipe_filter": 0, + "rows_materialized": 0, + "rows_matched": 0, + "raw_row_keys_sample": [], + "materialization_drop_reason": "none", + "account_token_raw": "60", + "account_token_normalized": "60", + "account_scope_fields_checked": [ + "account_dt", + "account_kt", + "registrator", + "analytics" + ], + "account_scope_match_strategy": "account_code_regex_plus_alias_map_v1", + "account_scope_drop_reason": "rows_remaining_after_scope_filter", + "runtime_readiness": "LIVE_QUERYABLE_WITH_LIMITS", + "limited_reason_category": "empty_match", + "response_type": "LIMITED_WITH_REASON", + "execution_lane": "address_query", + "llm_decomposition_applied": false, + "llm_decomposition_attempted": false, + "llm_provider_used": "local", + "llm_decomposition_trace_id": null, + "llm_decomposition_effective_message": "вернись на 2020-12-31 по 60", + "llm_decomposition_reason": "not_address_like", + "fallback_rule_hit": null, + "sanitized_user_message": "вернись на 2020-12-31 по 60", + "tool_gate_decision": "run_address_lane", + "tool_gate_reason": "address_signal_detected", + "answer_structure_v11": null, + "investigation_state_snapshot": null, + "normalized": null, + "normalizer_output": null + }, + "error_code": null, + "error_message": null + }, + { + "index": 16, + "id": "F016", + "question": "Покажи документы по договору 24/15 за 2020", + "session": "chain_contract_d", + "session_id": "asst-2026-04-02_Address_Followup_Context_Chains_2026-04-02_13-47-Run2-chain_contract_d", + "status_code": 200, + "ok": true, + "elapsed_ms": 7288, + "reply_type": "factual", + "trace_id": "address-l2nfe_zv0S", + "assistant_reply": "Период сохранен. Глубина live-выборки автоматически расширена до 1000 строк.\nСобран список документов по договору (live address lane).\nСтрок отобрано: 2.\n1. 2020-08-31T15:00:06Z | Поступление товаров и услуг 00000000024 от 31.08.2020 15:00:06 | 19.04 / 76.05 | 233.33\n2. 2020-08-31T15:00:06Z | Поступление товаров и услуг 00000000024 от 31.08.2020 15:00:06 | 44.01 / 76.05 | 1166.67", + "assistant_reply_first_line": "Период сохранен. Глубина live-выборки автоматически расширена до 1000 строк.", + "expected_intent": "list_documents_by_contract", + "actual_intent": "list_documents_by_contract", + "intent_match": true, + "expected_mode": "address_query", + "actual_mode": "address_query", + "mode_match": true, + "expected_reply_type": null, + "reply_match": true, + "semantic_pass": true, + "route_pass": true, + "route_health": "ok_or_factual", + "strict_policy": "route", + "strict_pass": true, + "selected_recipe": "address_documents_by_contract_v1", + "missing_required_filters": [], + "match_failure_stage": "none", + "match_failure_reason": null, + "rows_fetched": 1000, + "rows_matched": 2, + "mcp_call_status": "matched_non_empty", + "limited_reason_category": null, + "llm_decomposition_applied": true, + "llm_decomposition_reason": "normalized_fragment_applied", + "fallback_rule_hit": null, + "debug_payload": { + "trace_id": "address-l2nfe_zv0S", + "prompt_version": "address_query_runtime_v1", + "schema_version": "address_query_runtime_v1", + "fallback_type": "none", + "route_summary": null, + "fragments": [], + "requirements_extracted": [], + "coverage_report": { + "requirements_total": 0, + "requirements_covered": 0, + "requirements_uncovered": [], + "requirements_partially_covered": [], + "clarification_needed_for": [], + "out_of_scope_requirements": [] + }, + "routes": [], + "retrieval_status": [], + "retrieval_results": [], + "answer_grounding_check": { + "status": "grounded", + "route_subject_match": true, + "missing_requirements": [], + "reasons": [ + "address_action_detected", + "address_entity_detected", + "document_list_signal_detected", + "documents_by_contract_signal_detected", + "query_limit_auto_expanded_for_anchor_recovery" + ], + "why_included_summary": [], + "selection_reason_summary": [] + }, + "dropped_intent_segments": [], + "detected_mode": "address_query", + "detected_mode_confidence": "high", + "query_shape": "DOCUMENT_LIST", + "query_shape_confidence": "medium", + "detected_intent": "list_documents_by_contract", + "detected_intent_confidence": "medium", + "extracted_filters": { + "sort": "period_desc", + "limit": 20, + "contract": "24/15", + "period_from": "2020-01-01", + "period_to": "2020-12-31" + }, + "missing_required_filters": [], + "selected_recipe": "address_documents_by_contract_v1", + "mcp_call_status_legacy": "matched_non_empty", + "account_scope_mode": "preferred", + "account_scope_fallback_applied": false, + "anchor_type": "contract", + "anchor_value_raw": "24/15", + "anchor_value_resolved": "24/15", + "resolver_confidence": "medium", + "ambiguity_count": 0, + "match_failure_stage": "none", + "match_failure_reason": null, + "mcp_call_status": "matched_non_empty", + "rows_fetched": 1000, + "raw_rows_received": 1000, + "rows_after_account_scope": 438, + "rows_after_recipe_filter": 5, + "rows_materialized": 438, + "rows_matched": 2, + "raw_row_keys_sample": [ + "Период", + "Регистратор", + "СчетДт", + "СчетКт", + "Сумма", + "Period", + "Registrator", + "AccountDt", + "AccountKt", + "Amount" + ], + "materialization_drop_reason": "none", + "account_token_raw": null, + "account_token_normalized": null, + "account_scope_fields_checked": [ + "account_dt", + "account_kt", + "registrator", + "analytics" + ], + "account_scope_match_strategy": "account_code_regex_plus_alias_map_v1", + "account_scope_drop_reason": "not_applicable", + "runtime_readiness": "LIVE_QUERYABLE_WITH_LIMITS", + "limited_reason_category": null, + "response_type": "FACTUAL_LIST", + "execution_lane": "address_query", + "llm_decomposition_applied": true, + "llm_decomposition_attempted": true, + "llm_provider_used": "local", + "llm_decomposition_trace_id": "LxywwMtnG29D0v", + "llm_decomposition_effective_message": "Показать документы по договору 24/15 за период 2020 года.", + "llm_decomposition_reason": "normalized_fragment_applied", + "fallback_rule_hit": null, + "sanitized_user_message": "покажи документы по договору 24/15 за 2020", + "tool_gate_decision": "run_address_lane", + "tool_gate_reason": "address_mode_classifier_detected", + "answer_structure_v11": null, + "investigation_state_snapshot": null, + "normalized": null, + "normalizer_output": { + "trace_id": "LxywwMtnG29D0v", + "prompt_version": "normalizer_v2_0_2", + "applied": true, + "effective_message": "Показать документы по договору 24/15 за период 2020 года." + } + }, + "error_code": null, + "error_message": null + }, + { + "index": 17, + "id": "F017", + "question": "а теперь банковские операции", + "session": "chain_contract_d", + "session_id": "asst-2026-04-02_Address_Followup_Context_Chains_2026-04-02_13-47-Run2-chain_contract_d", + "status_code": 200, + "ok": true, + "elapsed_ms": 7131, + "reply_type": "factual", + "trace_id": "address-dxclmNtjTx", + "assistant_reply": "Период сохранен. Глубина live-выборки автоматически расширена до 1000 строк.\nСобран список банковских операций по договору (live address lane).\nСтрок отобрано: 3.\n1. 2020-10-15T13:34:53Z | Списание с расчетного счета 00000000246 от 15.10.2020 13:34:53 | 66.02 / 51 | 30819.47\n2. 2020-10-15T13:34:19Z | Списание с расчетного счета 00000000245 от 15.10.2020 13:34:19 | 66.01 / 51 | 134206.53\n3. 2020-08-31T15:00:04Z | Списание с расчетного счета 00000000224 от 31.08.2020 15:00:04 | 91.02 / 51 | 106.47", + "assistant_reply_first_line": "Период сохранен. Глубина live-выборки автоматически расширена до 1000 строк.", + "expected_intent": "bank_operations_by_contract", + "actual_intent": "bank_operations_by_contract", + "intent_match": true, + "expected_mode": "address_query", + "actual_mode": "address_query", + "mode_match": true, + "expected_reply_type": null, + "reply_match": true, + "semantic_pass": true, + "route_pass": true, + "route_health": "ok_or_factual", + "strict_policy": "route", + "strict_pass": true, + "selected_recipe": "address_bank_operations_by_contract_v1", + "missing_required_filters": [], + "match_failure_stage": "none", + "match_failure_reason": null, + "rows_fetched": 1000, + "rows_matched": 3, + "mcp_call_status": "matched_non_empty", + "limited_reason_category": null, + "llm_decomposition_applied": false, + "llm_decomposition_reason": "normalized_fragment_same", + "fallback_rule_hit": null, + "debug_payload": { + "trace_id": "address-dxclmNtjTx", + "prompt_version": "address_query_runtime_v1", + "schema_version": "address_query_runtime_v1", + "fallback_type": "none", + "route_summary": null, + "fragments": [], + "requirements_extracted": [], + "coverage_report": { + "requirements_total": 0, + "requirements_covered": 0, + "requirements_uncovered": [], + "requirements_partially_covered": [], + "clarification_needed_for": [], + "out_of_scope_requirements": [] + }, + "routes": [], + "retrieval_status": [], + "retrieval_results": [], + "answer_grounding_check": { + "status": "grounded", + "route_subject_match": true, + "missing_requirements": [], + "reasons": [ + "address_entity_detected", + "shape_not_detected", + "bank_ops_by_counterparty_signal_detected", + "intent_adjusted_to_contract_followup_context", + "contract_from_followup_context", + "period_from_followup_context", + "address_followup_context_applied", + "query_limit_auto_expanded_for_anchor_recovery" + ], + "why_included_summary": [], + "selection_reason_summary": [] + }, + "dropped_intent_segments": [], + "detected_mode": "address_query", + "detected_mode_confidence": "medium", + "query_shape": "UNKNOWN", + "query_shape_confidence": "low", + "detected_intent": "bank_operations_by_contract", + "detected_intent_confidence": "low", + "extracted_filters": { + "sort": "period_desc", + "limit": 20, + "contract": "24/15", + "period_from": "2020-01-01", + "period_to": "2020-12-31" + }, + "missing_required_filters": [], + "selected_recipe": "address_bank_operations_by_contract_v1", + "mcp_call_status_legacy": "matched_non_empty", + "account_scope_mode": "preferred", + "account_scope_fallback_applied": false, + "anchor_type": "contract", + "anchor_value_raw": "24/15", + "anchor_value_resolved": "24/15", + "resolver_confidence": "medium", + "ambiguity_count": 0, + "match_failure_stage": "none", + "match_failure_reason": null, + "mcp_call_status": "matched_non_empty", + "rows_fetched": 1000, + "raw_rows_received": 1000, + "rows_after_account_scope": 234, + "rows_after_recipe_filter": 3, + "rows_materialized": 234, + "rows_matched": 3, + "raw_row_keys_sample": [ + "Период", + "Регистратор", + "СчетДт", + "СчетКт", + "Сумма", + "Period", + "Registrator", + "AccountDt", + "AccountKt", + "Amount" + ], + "materialization_drop_reason": "none", + "account_token_raw": null, + "account_token_normalized": null, + "account_scope_fields_checked": [ + "account_dt", + "account_kt", + "registrator", + "analytics" + ], + "account_scope_match_strategy": "account_code_regex_plus_alias_map_v1", + "account_scope_drop_reason": "not_applicable", + "runtime_readiness": "LIVE_QUERYABLE_WITH_LIMITS", + "limited_reason_category": null, + "response_type": "FACTUAL_LIST", + "execution_lane": "address_query", + "llm_decomposition_applied": false, + "llm_decomposition_attempted": true, + "llm_provider_used": "local", + "llm_decomposition_trace_id": "g-37KRStKMK1LQ", + "llm_decomposition_effective_message": "а теперь банковские операции", + "llm_decomposition_reason": "normalized_fragment_same", + "fallback_rule_hit": null, + "sanitized_user_message": "а теперь банковские операции", + "tool_gate_decision": "run_address_lane", + "tool_gate_reason": "address_mode_classifier_detected", + "answer_structure_v11": null, + "investigation_state_snapshot": null, + "normalized": null, + "normalizer_output": { + "trace_id": "g-37KRStKMK1LQ", + "prompt_version": "normalizer_v2_0_2", + "applied": false, + "effective_message": "а теперь банковские операции" + } + }, + "error_code": null, + "error_message": null + }, + { + "index": 18, + "id": "F018", + "question": "а теперь только май 2020", + "session": "chain_contract_d", + "session_id": "asst-2026-04-02_Address_Followup_Context_Chains_2026-04-02_13-47-Run2-chain_contract_d", + "status_code": 200, + "ok": true, + "elapsed_ms": 3063, + "reply_type": "factual", + "trace_id": "address-vvT9v1Zvmp", + "assistant_reply": "По окну 2020-05-01..2020-05-31 строк не найдено; показаны ближайшие доступные данные 2020-10-15..2020-10-15.\nСобран список банковских операций по договору (live address lane).\nСтрок отобрано: 2.\n1. 2020-10-15T13:34:53Z | Списание с расчетного счета 00000000246 от 15.10.2020 13:34:53 | 66.02 / 51 | 30819.47\n2. 2020-10-15T13:34:19Z | Списание с расчетного счета 00000000245 от 15.10.2020 13:34:19 | 66.01 / 51 | 134206.53", + "assistant_reply_first_line": "По окну 2020-05-01..2020-05-31 строк не найдено; показаны ближайшие доступные данные 2020-10-15..2020-10-15.", + "expected_intent": "bank_operations_by_contract", + "actual_intent": "bank_operations_by_contract", + "intent_match": true, + "expected_mode": "address_query", + "actual_mode": "address_query", + "mode_match": true, + "expected_reply_type": null, + "reply_match": true, + "semantic_pass": true, + "route_pass": true, + "route_health": "ok_or_factual", + "strict_policy": "route", + "strict_pass": true, + "selected_recipe": "address_bank_operations_by_contract_v1", + "missing_required_filters": [], + "match_failure_stage": "none", + "match_failure_reason": null, + "rows_fetched": 1000, + "rows_matched": 2, + "mcp_call_status": "matched_non_empty", + "limited_reason_category": null, + "llm_decomposition_applied": false, + "llm_decomposition_reason": "not_address_like", + "fallback_rule_hit": null, + "debug_payload": { + "trace_id": "address-vvT9v1Zvmp", + "prompt_version": "address_query_runtime_v1", + "schema_version": "address_query_runtime_v1", + "fallback_type": "none", + "route_summary": null, + "fragments": [], + "requirements_extracted": [], + "coverage_report": { + "requirements_total": 0, + "requirements_covered": 0, + "requirements_uncovered": [], + "requirements_partially_covered": [], + "clarification_needed_for": [], + "out_of_scope_requirements": [] + }, + "routes": [], + "retrieval_status": [], + "retrieval_results": [], + "answer_grounding_check": { + "status": "grounded", + "route_subject_match": true, + "missing_requirements": [], + "reasons": [ + "no_address_or_deep_signal", + "address_mode_from_followup_context", + "shape_not_detected", + "intent_not_supported_in_v1", + "intent_from_followup_context", + "contract_from_followup_context", + "address_followup_context_applied", + "period_window_auto_broadened_to_available_data" + ], + "why_included_summary": [], + "selection_reason_summary": [] + }, + "dropped_intent_segments": [], + "detected_mode": "address_query", + "detected_mode_confidence": "medium", + "query_shape": "UNKNOWN", + "query_shape_confidence": "low", + "detected_intent": "bank_operations_by_contract", + "detected_intent_confidence": "low", + "extracted_filters": { + "sort": "period_desc", + "limit": 20, + "period_from": "2020-05-01", + "period_to": "2020-05-31", + "contract": "24/15" + }, + "missing_required_filters": [], + "selected_recipe": "address_bank_operations_by_contract_v1", + "mcp_call_status_legacy": "matched_non_empty", + "account_scope_mode": "preferred", + "account_scope_fallback_applied": false, + "anchor_type": "contract", + "anchor_value_raw": "24/15", + "anchor_value_resolved": "24/15", + "resolver_confidence": "medium", + "ambiguity_count": 0, + "match_failure_stage": "none", + "match_failure_reason": null, + "mcp_call_status": "matched_non_empty", + "rows_fetched": 1000, + "raw_rows_received": 1000, + "rows_after_account_scope": 341, + "rows_after_recipe_filter": 2, + "rows_materialized": 341, + "rows_matched": 2, + "raw_row_keys_sample": [ + "Период", + "Регистратор", + "СчетДт", + "СчетКт", + "Сумма", + "Period", + "Registrator", + "AccountDt", + "AccountKt", + "Amount" + ], + "materialization_drop_reason": "none", + "account_token_raw": null, + "account_token_normalized": null, + "account_scope_fields_checked": [ + "account_dt", + "account_kt", + "registrator", + "analytics" + ], + "account_scope_match_strategy": "account_code_regex_plus_alias_map_v1", + "account_scope_drop_reason": "not_applicable", + "runtime_readiness": "LIVE_QUERYABLE_WITH_LIMITS", + "limited_reason_category": null, + "response_type": "FACTUAL_LIST", + "execution_lane": "address_query", + "llm_decomposition_applied": false, + "llm_decomposition_attempted": false, + "llm_provider_used": "local", + "llm_decomposition_trace_id": null, + "llm_decomposition_effective_message": "а теперь только май 2020", + "llm_decomposition_reason": "not_address_like", + "fallback_rule_hit": null, + "sanitized_user_message": "а теперь только май 2020", + "tool_gate_decision": "run_address_lane", + "tool_gate_reason": "followup_context_detected", + "answer_structure_v11": null, + "investigation_state_snapshot": null, + "normalized": null, + "normalizer_output": null + }, + "error_code": null, + "error_message": null + }, + { + "index": 19, + "id": "F019", + "question": "есть ли открытые позиции на ту же дату", + "session": "chain_contract_d", + "session_id": "asst-2026-04-02_Address_Followup_Context_Chains_2026-04-02_13-47-Run2-chain_contract_d", + "status_code": 200, + "ok": true, + "elapsed_ms": 1815, + "reply_type": "partial_coverage", + "trace_id": "address-v77kV-huBw", + "assistant_reply": "В live-данных по текущему фильтру записи не найдены.\nПричина: по указанному якорю и фильтрам в live-выборке нет строк.\nЧто нужно уточнить: уточните период или снимите часть фильтров.", + "assistant_reply_first_line": "В live-данных по текущему фильтру записи не найдены.", + "expected_intent": "open_items_by_counterparty_or_contract", + "actual_intent": "open_items_by_counterparty_or_contract", + "intent_match": true, + "expected_mode": "address_query", + "actual_mode": "address_query", + "mode_match": true, + "expected_reply_type": null, + "reply_match": true, + "semantic_pass": true, + "route_pass": false, + "route_health": "likely_blocked_route", + "strict_policy": "route", + "strict_pass": false, + "selected_recipe": "address_open_items_by_party_or_contract_v1", + "missing_required_filters": [], + "match_failure_stage": "materialized_but_not_anchor_matched", + "match_failure_reason": "contract_anchor_not_matched_in_materialized_rows", + "rows_fetched": 20, + "rows_matched": 0, + "mcp_call_status": "materialized_but_not_anchor_matched", + "limited_reason_category": "empty_match", + "llm_decomposition_applied": false, + "llm_decomposition_reason": "not_address_like", + "fallback_rule_hit": null, + "debug_payload": { + "trace_id": "address-v77kV-huBw", + "prompt_version": "address_query_runtime_v1", + "schema_version": "address_query_runtime_v1", + "fallback_type": "partial", + "route_summary": null, + "fragments": [], + "requirements_extracted": [], + "coverage_report": { + "requirements_total": 0, + "requirements_covered": 0, + "requirements_uncovered": [], + "requirements_partially_covered": [], + "clarification_needed_for": [], + "out_of_scope_requirements": [] + }, + "routes": [], + "retrieval_status": [], + "retrieval_results": [], + "answer_grounding_check": { + "status": "partial", + "route_subject_match": true, + "missing_requirements": [], + "reasons": [ + "no_address_or_deep_signal", + "address_mode_from_followup_context", + "verify_signal_detected", + "intent_not_supported_in_v1", + "open_items_from_followup_context", + "contract_from_followup_context", + "period_from_followup_context", + "address_followup_context_applied" + ], + "why_included_summary": [], + "selection_reason_summary": [] + }, + "dropped_intent_segments": [], + "detected_mode": "address_query", + "detected_mode_confidence": "medium", + "query_shape": "VERIFY_FACTUAL", + "query_shape_confidence": "medium", + "detected_intent": "open_items_by_counterparty_or_contract", + "detected_intent_confidence": "low", + "extracted_filters": { + "sort": "period_desc", + "limit": 20, + "contract": "24/15", + "period_from": "2020-05-01", + "period_to": "2020-05-31" + }, + "missing_required_filters": [], + "selected_recipe": "address_open_items_by_party_or_contract_v1", + "mcp_call_status_legacy": "materialized_but_not_matched", + "account_scope_mode": "preferred", + "account_scope_fallback_applied": true, + "anchor_type": "contract", + "anchor_value_raw": "24/15", + "anchor_value_resolved": "24/15", + "resolver_confidence": "medium", + "ambiguity_count": 0, + "match_failure_stage": "materialized_but_not_anchor_matched", + "match_failure_reason": "contract_anchor_not_matched_in_materialized_rows", + "mcp_call_status": "materialized_but_not_anchor_matched", + "rows_fetched": 20, + "raw_rows_received": 20, + "rows_after_account_scope": 20, + "rows_after_recipe_filter": 0, + "rows_materialized": 20, + "rows_matched": 0, + "raw_row_keys_sample": [ + "Период", + "Регистратор", + "СчетДт", + "СчетКт", + "Сумма", + "Period", + "Registrator", + "AccountDt", + "AccountKt", + "Amount" + ], + "materialization_drop_reason": "none", + "account_token_raw": null, + "account_token_normalized": null, + "account_scope_fields_checked": [ + "account_dt", + "account_kt", + "registrator", + "analytics" + ], + "account_scope_match_strategy": "account_code_regex_plus_alias_map_v1", + "account_scope_drop_reason": "not_applicable", + "runtime_readiness": "LIVE_QUERYABLE_WITH_LIMITS", + "limited_reason_category": "empty_match", + "response_type": "LIMITED_WITH_REASON", + "execution_lane": "address_query", + "llm_decomposition_applied": false, + "llm_decomposition_attempted": false, + "llm_provider_used": "local", + "llm_decomposition_trace_id": null, + "llm_decomposition_effective_message": "есть ли открытые позиции на ту же дату", + "llm_decomposition_reason": "not_address_like", + "fallback_rule_hit": null, + "sanitized_user_message": "есть ли открытые позиции на ту же дату", + "tool_gate_decision": "run_address_lane", + "tool_gate_reason": "followup_context_detected", + "answer_structure_v11": null, + "investigation_state_snapshot": null, + "normalized": null, + "normalizer_output": null + }, + "error_code": null, + "error_message": null + }, + { + "index": 20, + "id": "F020", + "question": "покажи документы по этому же договору", + "session": "chain_contract_d", + "session_id": "asst-2026-04-02_Address_Followup_Context_Chains_2026-04-02_13-47-Run2-chain_contract_d", + "status_code": 200, + "ok": true, + "elapsed_ms": 8361, + "reply_type": "factual", + "trace_id": "address-K2UY9f03Me", + "assistant_reply": "По окну 2020-05-01..2020-05-31 строк не найдено; показаны ближайшие доступные данные 2020-10-15..2020-10-15.\nСобран список документов по договору (live address lane).\nСтрок отобрано: 2.\n1. 2020-10-15T13:34:53Z | Списание с расчетного счета 00000000246 от 15.10.2020 13:34:53 | 66.02 / 51 | 30819.47\n2. 2020-10-15T13:34:19Z | Списание с расчетного счета 00000000245 от 15.10.2020 13:34:19 | 66.01 / 51 | 134206.53", + "assistant_reply_first_line": "По окну 2020-05-01..2020-05-31 строк не найдено; показаны ближайшие доступные данные 2020-10-15..2020-10-15.", + "expected_intent": "list_documents_by_contract", + "actual_intent": "list_documents_by_contract", + "intent_match": true, + "expected_mode": "address_query", + "actual_mode": "address_query", + "mode_match": true, + "expected_reply_type": null, + "reply_match": true, + "semantic_pass": true, + "route_pass": true, + "route_health": "ok_or_factual", + "strict_policy": "route", + "strict_pass": true, + "selected_recipe": "address_documents_by_contract_v1", + "missing_required_filters": [], + "match_failure_stage": "none", + "match_failure_reason": null, + "rows_fetched": 1000, + "rows_matched": 2, + "mcp_call_status": "matched_non_empty", + "limited_reason_category": null, + "llm_decomposition_applied": true, + "llm_decomposition_reason": "normalized_fragment_applied", + "fallback_rule_hit": null, + "debug_payload": { + "trace_id": "address-K2UY9f03Me", + "prompt_version": "address_query_runtime_v1", + "schema_version": "address_query_runtime_v1", + "fallback_type": "none", + "route_summary": null, + "fragments": [], + "requirements_extracted": [], + "coverage_report": { + "requirements_total": 0, + "requirements_covered": 0, + "requirements_uncovered": [], + "requirements_partially_covered": [], + "clarification_needed_for": [], + "out_of_scope_requirements": [] + }, + "routes": [], + "retrieval_status": [], + "retrieval_results": [], + "answer_grounding_check": { + "status": "grounded", + "route_subject_match": true, + "missing_requirements": [], + "reasons": [ + "address_action_detected", + "address_entity_detected", + "document_list_signal_detected", + "documents_by_contract_signal_detected", + "contract_from_followup_context", + "period_from_followup_context", + "address_followup_context_applied", + "period_window_auto_broadened_to_available_data" + ], + "why_included_summary": [], + "selection_reason_summary": [] + }, + "dropped_intent_segments": [], + "detected_mode": "address_query", + "detected_mode_confidence": "high", + "query_shape": "DOCUMENT_LIST", + "query_shape_confidence": "medium", + "detected_intent": "list_documents_by_contract", + "detected_intent_confidence": "medium", + "extracted_filters": { + "sort": "period_desc", + "limit": 20, + "contract": "24/15", + "period_from": "2020-05-01", + "period_to": "2020-05-31" + }, + "missing_required_filters": [], + "selected_recipe": "address_documents_by_contract_v1", + "mcp_call_status_legacy": "matched_non_empty", + "account_scope_mode": "preferred", + "account_scope_fallback_applied": false, + "anchor_type": "contract", + "anchor_value_raw": "24/15", + "anchor_value_resolved": "24/15", + "resolver_confidence": "medium", + "ambiguity_count": 0, + "match_failure_stage": "none", + "match_failure_reason": null, + "mcp_call_status": "matched_non_empty", + "rows_fetched": 1000, + "raw_rows_received": 1000, + "rows_after_account_scope": 416, + "rows_after_recipe_filter": 2, + "rows_materialized": 416, + "rows_matched": 2, + "raw_row_keys_sample": [ + "Период", + "Регистратор", + "СчетДт", + "СчетКт", + "Сумма", + "Period", + "Registrator", + "AccountDt", + "AccountKt", + "Amount" + ], + "materialization_drop_reason": "none", + "account_token_raw": null, + "account_token_normalized": null, + "account_scope_fields_checked": [ + "account_dt", + "account_kt", + "registrator", + "analytics" + ], + "account_scope_match_strategy": "account_code_regex_plus_alias_map_v1", + "account_scope_drop_reason": "not_applicable", + "runtime_readiness": "LIVE_QUERYABLE_WITH_LIMITS", + "limited_reason_category": null, + "response_type": "FACTUAL_LIST", + "execution_lane": "address_query", + "llm_decomposition_applied": true, + "llm_decomposition_attempted": true, + "llm_provider_used": "local", + "llm_decomposition_trace_id": "C5Epcy_eRbItlo", + "llm_decomposition_effective_message": "Показать документы по указанному договору.", + "llm_decomposition_reason": "normalized_fragment_applied", + "fallback_rule_hit": null, + "sanitized_user_message": "покажи документы по этому же договору", + "tool_gate_decision": "run_address_lane", + "tool_gate_reason": "address_mode_classifier_detected", + "answer_structure_v11": null, + "investigation_state_snapshot": null, + "normalized": null, + "normalizer_output": { + "trace_id": "C5Epcy_eRbItlo", + "prompt_version": "normalizer_v2_0_2", + "applied": true, + "effective_message": "Показать документы по указанному договору." + } + }, + "error_code": null, + "error_message": null + }, + { + "index": 21, + "id": "F021", + "question": "Покажи банковские операции по договору 24/15", + "session": "chain_contract_e", + "session_id": "asst-2026-04-02_Address_Followup_Context_Chains_2026-04-02_13-47-Run2-chain_contract_e", + "status_code": 200, + "ok": true, + "elapsed_ms": 6101, + "reply_type": "factual", + "trace_id": "address-uJkDG48maH", + "assistant_reply": "Собран список банковских операций по договору (live address lane).\nСтрок отобрано: 3.\n1. 2020-10-15T13:34:53Z | Списание с расчетного счета 00000000246 от 15.10.2020 13:34:53 | 66.02 / 51 | 30819.47\n2. 2020-10-15T13:34:19Z | Списание с расчетного счета 00000000245 от 15.10.2020 13:34:19 | 66.01 / 51 | 134206.53\n3. 2020-08-31T15:00:04Z | Списание с расчетного счета 00000000224 от 31.08.2020 15:00:04 | 91.02 / 51 | 106.47", + "assistant_reply_first_line": "Собран список банковских операций по договору (live address lane).", + "expected_intent": "bank_operations_by_contract", + "actual_intent": "bank_operations_by_contract", + "intent_match": true, + "expected_mode": "address_query", + "actual_mode": "address_query", + "mode_match": true, + "expected_reply_type": null, + "reply_match": true, + "semantic_pass": true, + "route_pass": true, + "route_health": "ok_or_factual", + "strict_policy": "route", + "strict_pass": true, + "selected_recipe": "address_bank_operations_by_contract_v1", + "missing_required_filters": [], + "match_failure_stage": "none", + "match_failure_reason": null, + "rows_fetched": 1000, + "rows_matched": 3, + "mcp_call_status": "matched_non_empty", + "limited_reason_category": null, + "llm_decomposition_applied": true, + "llm_decomposition_reason": "normalized_fragment_applied", + "fallback_rule_hit": null, + "debug_payload": { + "trace_id": "address-uJkDG48maH", + "prompt_version": "address_query_runtime_v1", + "schema_version": "address_query_runtime_v1", + "fallback_type": "none", + "route_summary": null, + "fragments": [], + "requirements_extracted": [], + "coverage_report": { + "requirements_total": 0, + "requirements_covered": 0, + "requirements_uncovered": [], + "requirements_partially_covered": [], + "clarification_needed_for": [], + "out_of_scope_requirements": [] + }, + "routes": [], + "retrieval_status": [], + "retrieval_results": [], + "answer_grounding_check": { + "status": "grounded", + "route_subject_match": true, + "missing_requirements": [], + "reasons": [ + "address_action_detected", + "address_entity_detected", + "object_signal_detected", + "bank_ops_by_contract_signal_detected" + ], + "why_included_summary": [], + "selection_reason_summary": [] + }, + "dropped_intent_segments": [], + "detected_mode": "address_query", + "detected_mode_confidence": "high", + "query_shape": "OBJECT_LOOKUP", + "query_shape_confidence": "medium", + "detected_intent": "bank_operations_by_contract", + "detected_intent_confidence": "medium", + "extracted_filters": { + "sort": "period_desc", + "limit": 20, + "account": "51", + "contract": "24/15" + }, + "missing_required_filters": [], + "selected_recipe": "address_bank_operations_by_contract_v1", + "mcp_call_status_legacy": "matched_non_empty", + "account_scope_mode": "preferred", + "account_scope_fallback_applied": false, + "anchor_type": "contract", + "anchor_value_raw": "24/15", + "anchor_value_resolved": "24/15", + "resolver_confidence": "medium", + "ambiguity_count": 0, + "match_failure_stage": "none", + "match_failure_reason": null, + "mcp_call_status": "matched_non_empty", + "rows_fetched": 1000, + "raw_rows_received": 1000, + "rows_after_account_scope": 1000, + "rows_after_recipe_filter": 3, + "rows_materialized": 1000, + "rows_matched": 3, + "raw_row_keys_sample": [ + "Период", + "Регистратор", + "СчетДт", + "СчетКт", + "Сумма", + "Period", + "Registrator", + "AccountDt", + "AccountKt", + "Amount" + ], + "materialization_drop_reason": "none", + "account_token_raw": "51", + "account_token_normalized": "51", + "account_scope_fields_checked": [ + "account_dt", + "account_kt", + "registrator", + "analytics" + ], + "account_scope_match_strategy": "account_code_regex_plus_alias_map_v1", + "account_scope_drop_reason": "not_applicable", + "runtime_readiness": "LIVE_QUERYABLE_WITH_LIMITS", + "limited_reason_category": null, + "response_type": "FACTUAL_LIST", + "execution_lane": "address_query", + "llm_decomposition_applied": true, + "llm_decomposition_attempted": true, + "llm_provider_used": "local", + "llm_decomposition_trace_id": "AqmAftO2posYie", + "llm_decomposition_effective_message": "Показать банковские операции (счета 51, 60, 62) связанные с договором 24/15.", + "llm_decomposition_reason": "normalized_fragment_applied", + "fallback_rule_hit": null, + "sanitized_user_message": "покажи банковские операции по договору 24/15", + "tool_gate_decision": "run_address_lane", + "tool_gate_reason": "address_mode_classifier_detected", + "answer_structure_v11": null, + "investigation_state_snapshot": null, + "normalized": null, + "normalizer_output": { + "trace_id": "AqmAftO2posYie", + "prompt_version": "normalizer_v2_0_2", + "applied": true, + "effective_message": "Показать банковские операции (счета 51, 60, 62) связанные с договором 24/15." + } + }, + "error_code": null, + "error_message": null + }, + { + "index": 22, + "id": "F022", + "question": "а теперь открытые позиции по нему", + "session": "chain_contract_e", + "session_id": "asst-2026-04-02_Address_Followup_Context_Chains_2026-04-02_13-47-Run2-chain_contract_e", + "status_code": 200, + "ok": true, + "elapsed_ms": 1996, + "reply_type": "partial_coverage", + "trace_id": "address-tqJJfMl2ex", + "assistant_reply": "В live-данных по текущему фильтру записи не найдены.\nПричина: по указанному якорю и фильтрам в live-выборке нет строк.\nЧто нужно уточнить: уточните период или снимите часть фильтров.", + "assistant_reply_first_line": "В live-данных по текущему фильтру записи не найдены.", + "expected_intent": "open_items_by_counterparty_or_contract", + "actual_intent": "open_items_by_counterparty_or_contract", + "intent_match": true, + "expected_mode": "address_query", + "actual_mode": "address_query", + "mode_match": true, + "expected_reply_type": null, + "reply_match": true, + "semantic_pass": true, + "route_pass": false, + "route_health": "likely_blocked_route", + "strict_policy": "route", + "strict_pass": false, + "selected_recipe": "address_open_items_by_party_or_contract_v1", + "missing_required_filters": [], + "match_failure_stage": "materialized_but_not_anchor_matched", + "match_failure_reason": "contract_anchor_not_matched_in_materialized_rows", + "rows_fetched": 20, + "rows_matched": 0, + "mcp_call_status": "materialized_but_not_anchor_matched", + "limited_reason_category": "empty_match", + "llm_decomposition_applied": false, + "llm_decomposition_reason": "not_address_like", + "fallback_rule_hit": null, + "debug_payload": { + "trace_id": "address-tqJJfMl2ex", + "prompt_version": "address_query_runtime_v1", + "schema_version": "address_query_runtime_v1", + "fallback_type": "partial", + "route_summary": null, + "fragments": [], + "requirements_extracted": [], + "coverage_report": { + "requirements_total": 0, + "requirements_covered": 0, + "requirements_uncovered": [], + "requirements_partially_covered": [], + "clarification_needed_for": [], + "out_of_scope_requirements": [] + }, + "routes": [], + "retrieval_status": [], + "retrieval_results": [], + "answer_grounding_check": { + "status": "partial", + "route_subject_match": true, + "missing_requirements": [], + "reasons": [ + "no_address_or_deep_signal", + "address_mode_from_followup_context", + "shape_not_detected", + "intent_not_supported_in_v1", + "open_items_from_followup_context", + "contract_from_followup_context", + "address_followup_context_applied" + ], + "why_included_summary": [], + "selection_reason_summary": [] + }, + "dropped_intent_segments": [], + "detected_mode": "address_query", + "detected_mode_confidence": "medium", + "query_shape": "UNKNOWN", + "query_shape_confidence": "low", + "detected_intent": "open_items_by_counterparty_or_contract", + "detected_intent_confidence": "low", + "extracted_filters": { + "sort": "period_desc", + "limit": 20, + "contract": "24/15" + }, + "missing_required_filters": [], + "selected_recipe": "address_open_items_by_party_or_contract_v1", + "mcp_call_status_legacy": "materialized_but_not_matched", + "account_scope_mode": "preferred", + "account_scope_fallback_applied": true, + "anchor_type": "contract", + "anchor_value_raw": "24/15", + "anchor_value_resolved": "24/15", + "resolver_confidence": "medium", + "ambiguity_count": 0, + "match_failure_stage": "materialized_but_not_anchor_matched", + "match_failure_reason": "contract_anchor_not_matched_in_materialized_rows", + "mcp_call_status": "materialized_but_not_anchor_matched", + "rows_fetched": 20, + "raw_rows_received": 20, + "rows_after_account_scope": 20, + "rows_after_recipe_filter": 0, + "rows_materialized": 20, + "rows_matched": 0, + "raw_row_keys_sample": [ + "Период", + "Регистратор", + "СчетДт", + "СчетКт", + "Сумма", + "Period", + "Registrator", + "AccountDt", + "AccountKt", + "Amount" + ], + "materialization_drop_reason": "none", + "account_token_raw": null, + "account_token_normalized": null, + "account_scope_fields_checked": [ + "account_dt", + "account_kt", + "registrator", + "analytics" + ], + "account_scope_match_strategy": "account_code_regex_plus_alias_map_v1", + "account_scope_drop_reason": "not_applicable", + "runtime_readiness": "LIVE_QUERYABLE_WITH_LIMITS", + "limited_reason_category": "empty_match", + "response_type": "LIMITED_WITH_REASON", + "execution_lane": "address_query", + "llm_decomposition_applied": false, + "llm_decomposition_attempted": false, + "llm_provider_used": "local", + "llm_decomposition_trace_id": null, + "llm_decomposition_effective_message": "а теперь открытые позиции по нему", + "llm_decomposition_reason": "not_address_like", + "fallback_rule_hit": null, + "sanitized_user_message": "а теперь открытые позиции по нему", + "tool_gate_decision": "run_address_lane", + "tool_gate_reason": "followup_context_detected", + "answer_structure_v11": null, + "investigation_state_snapshot": null, + "normalized": null, + "normalizer_output": null + }, + "error_code": null, + "error_message": null + }, + { + "index": 23, + "id": "F023", + "question": "а теперь на 2020-12", + "session": "chain_contract_e", + "session_id": "asst-2026-04-02_Address_Followup_Context_Chains_2026-04-02_13-47-Run2-chain_contract_e", + "status_code": 200, + "ok": true, + "elapsed_ms": 1879, + "reply_type": "partial_coverage", + "trace_id": "address-4l-R3VJrqp", + "assistant_reply": "В live-данных по текущему фильтру записи не найдены.\nПричина: по указанному якорю и фильтрам в live-выборке нет строк.\nЧто нужно уточнить: уточните период или снимите часть фильтров.", + "assistant_reply_first_line": "В live-данных по текущему фильтру записи не найдены.", + "expected_intent": "open_items_by_counterparty_or_contract", + "actual_intent": "open_items_by_counterparty_or_contract", + "intent_match": true, + "expected_mode": "address_query", + "actual_mode": "address_query", + "mode_match": true, + "expected_reply_type": null, + "reply_match": true, + "semantic_pass": true, + "route_pass": false, + "route_health": "likely_blocked_route", + "strict_policy": "route", + "strict_pass": false, + "selected_recipe": "address_open_items_by_party_or_contract_v1", + "missing_required_filters": [], + "match_failure_stage": "materialized_but_not_anchor_matched", + "match_failure_reason": "contract_anchor_not_matched_in_materialized_rows", + "rows_fetched": 20, + "rows_matched": 0, + "mcp_call_status": "materialized_but_not_anchor_matched", + "limited_reason_category": "empty_match", + "llm_decomposition_applied": false, + "llm_decomposition_reason": "not_address_like", + "fallback_rule_hit": null, + "debug_payload": { + "trace_id": "address-4l-R3VJrqp", + "prompt_version": "address_query_runtime_v1", + "schema_version": "address_query_runtime_v1", + "fallback_type": "partial", + "route_summary": null, + "fragments": [], + "requirements_extracted": [], + "coverage_report": { + "requirements_total": 0, + "requirements_covered": 0, + "requirements_uncovered": [], + "requirements_partially_covered": [], + "clarification_needed_for": [], + "out_of_scope_requirements": [] + }, + "routes": [], + "retrieval_status": [], + "retrieval_results": [], + "answer_grounding_check": { + "status": "partial", + "route_subject_match": true, + "missing_requirements": [], + "reasons": [ + "no_address_or_deep_signal", + "address_mode_from_followup_context", + "shape_not_detected", + "intent_not_supported_in_v1", + "intent_from_followup_context", + "contract_from_followup_context", + "address_followup_context_applied" + ], + "why_included_summary": [], + "selection_reason_summary": [] + }, + "dropped_intent_segments": [], + "detected_mode": "address_query", + "detected_mode_confidence": "medium", + "query_shape": "UNKNOWN", + "query_shape_confidence": "low", + "detected_intent": "open_items_by_counterparty_or_contract", + "detected_intent_confidence": "low", + "extracted_filters": { + "sort": "period_desc", + "limit": 20, + "period_from": "2020-12-01", + "period_to": "2020-12-31", + "contract": "24/15" + }, + "missing_required_filters": [], + "selected_recipe": "address_open_items_by_party_or_contract_v1", + "mcp_call_status_legacy": "materialized_but_not_matched", + "account_scope_mode": "preferred", + "account_scope_fallback_applied": true, + "anchor_type": "contract", + "anchor_value_raw": "24/15", + "anchor_value_resolved": "24/15", + "resolver_confidence": "medium", + "ambiguity_count": 0, + "match_failure_stage": "materialized_but_not_anchor_matched", + "match_failure_reason": "contract_anchor_not_matched_in_materialized_rows", + "mcp_call_status": "materialized_but_not_anchor_matched", + "rows_fetched": 20, + "raw_rows_received": 20, + "rows_after_account_scope": 20, + "rows_after_recipe_filter": 0, + "rows_materialized": 20, + "rows_matched": 0, + "raw_row_keys_sample": [ + "Период", + "Регистратор", + "СчетДт", + "СчетКт", + "Сумма", + "Period", + "Registrator", + "AccountDt", + "AccountKt", + "Amount" + ], + "materialization_drop_reason": "none", + "account_token_raw": null, + "account_token_normalized": null, + "account_scope_fields_checked": [ + "account_dt", + "account_kt", + "registrator", + "analytics" + ], + "account_scope_match_strategy": "account_code_regex_plus_alias_map_v1", + "account_scope_drop_reason": "not_applicable", + "runtime_readiness": "LIVE_QUERYABLE_WITH_LIMITS", + "limited_reason_category": "empty_match", + "response_type": "LIMITED_WITH_REASON", + "execution_lane": "address_query", + "llm_decomposition_applied": false, + "llm_decomposition_attempted": false, + "llm_provider_used": "local", + "llm_decomposition_trace_id": null, + "llm_decomposition_effective_message": "а теперь на 2020-12", + "llm_decomposition_reason": "not_address_like", + "fallback_rule_hit": null, + "sanitized_user_message": "а теперь на 2020-12", + "tool_gate_decision": "run_address_lane", + "tool_gate_reason": "followup_context_detected", + "answer_structure_v11": null, + "investigation_state_snapshot": null, + "normalized": null, + "normalizer_output": null + }, + "error_code": null, + "error_message": null + }, + { + "index": 24, + "id": "F024", + "question": "а по счету 51 на ту же дату", + "session": "chain_contract_e", + "session_id": "asst-2026-04-02_Address_Followup_Context_Chains_2026-04-02_13-47-Run2-chain_contract_e", + "status_code": 200, + "ok": true, + "elapsed_ms": 5047, + "reply_type": "factual", + "trace_id": "address-RjBA9vNUeg", + "assistant_reply": "Адресный срез по счету собран (по движениям live MCP).\nСтрок отобрано: 20.\nСумма по отобранным движениям: 3925635.78.\n1. 2020-12-30T12:00:00Z | Поступление на расчетный счет 00000000044 от 30.12.2020 12:00:00 | 51 / 62.02 | 3248300\n2. 2020-12-25T12:00:04Z | Списание с расчетного счета 00000000299 от 25.12.2020 12:00:04 | 91.02 / 51 | 179.78\n3. 2020-12-25T12:00:03Z | Списание с расчетного счета 00000000298 от 25.12.2020 12:00:03 | 68.01.1 / 51 | 9945\n4. 2020-12-25T12:00:02Z | Списание с расчетного счета 00000000297 от 25.12.2020 12:00:02 | 70 / 51 | 18800", + "assistant_reply_first_line": "Адресный срез по счету собран (по движениям live MCP).", + "expected_intent": "account_balance_snapshot", + "actual_intent": "account_balance_snapshot", + "intent_match": true, + "expected_mode": "address_query", + "actual_mode": "address_query", + "mode_match": true, + "expected_reply_type": null, + "reply_match": true, + "semantic_pass": true, + "route_pass": true, + "route_health": "ok_or_factual", + "strict_policy": "route", + "strict_pass": true, + "selected_recipe": "address_movements_account_snapshot_v1", + "missing_required_filters": [], + "match_failure_stage": "none", + "match_failure_reason": null, + "rows_fetched": 20, + "rows_matched": 20, + "mcp_call_status": "matched_non_empty", + "limited_reason_category": null, + "llm_decomposition_applied": true, + "llm_decomposition_reason": "normalized_fragment_applied", + "fallback_rule_hit": null, + "debug_payload": { + "trace_id": "address-RjBA9vNUeg", + "prompt_version": "address_query_runtime_v1", + "schema_version": "address_query_runtime_v1", + "fallback_type": "none", + "route_summary": null, + "fragments": [], + "requirements_extracted": [], + "coverage_report": { + "requirements_total": 0, + "requirements_covered": 0, + "requirements_uncovered": [], + "requirements_partially_covered": [], + "clarification_needed_for": [], + "out_of_scope_requirements": [] + }, + "routes": [], + "retrieval_status": [], + "retrieval_results": [], + "answer_grounding_check": { + "status": "grounded", + "route_subject_match": true, + "missing_requirements": [], + "reasons": [ + "address_action_detected", + "address_entity_detected", + "shape_not_detected", + "account_balance_signal_detected", + "as_of_date_from_followup_context", + "period_from_followup_context", + "address_followup_context_applied" + ], + "why_included_summary": [], + "selection_reason_summary": [] + }, + "dropped_intent_segments": [], + "detected_mode": "address_query", + "detected_mode_confidence": "high", + "query_shape": "UNKNOWN", + "query_shape_confidence": "low", + "detected_intent": "account_balance_snapshot", + "detected_intent_confidence": "high", + "extracted_filters": { + "sort": "period_desc", + "limit": 20, + "account": "51", + "as_of_date": "2020-12-31", + "period_from": "2020-12-01", + "period_to": "2020-12-31" + }, + "missing_required_filters": [], + "selected_recipe": "address_movements_account_snapshot_v1", + "mcp_call_status_legacy": "matched_non_empty", + "account_scope_mode": "strict", + "account_scope_fallback_applied": false, + "anchor_type": "account", + "anchor_value_raw": "51", + "anchor_value_resolved": "51", + "resolver_confidence": "high", + "ambiguity_count": 0, + "match_failure_stage": "none", + "match_failure_reason": null, + "mcp_call_status": "matched_non_empty", + "rows_fetched": 20, + "raw_rows_received": 20, + "rows_after_account_scope": 20, + "rows_after_recipe_filter": 20, + "rows_materialized": 20, + "rows_matched": 20, + "raw_row_keys_sample": [ + "Период", + "Регистратор", + "СчетДт", + "СчетКт", + "Сумма", + "Period", + "Registrator", + "AccountDt", + "AccountKt", + "Amount" + ], + "materialization_drop_reason": "none", + "account_token_raw": "51", + "account_token_normalized": "51", + "account_scope_fields_checked": [ + "account_dt", + "account_kt", + "registrator", + "analytics" + ], + "account_scope_match_strategy": "account_code_regex_plus_alias_map_v1", + "account_scope_drop_reason": "rows_remaining_after_scope_filter", + "runtime_readiness": "LIVE_QUERYABLE_WITH_LIMITS", + "limited_reason_category": null, + "response_type": "FACTUAL_SUMMARY", + "execution_lane": "address_query", + "llm_decomposition_applied": true, + "llm_decomposition_attempted": true, + "llm_provider_used": "local", + "llm_decomposition_trace_id": "7VCrbBzPVKWKcC", + "llm_decomposition_effective_message": "показать записи по счету 51 на ту же дату", + "llm_decomposition_reason": "normalized_fragment_applied", + "fallback_rule_hit": null, + "sanitized_user_message": "а по счету 51 на ту же дату", + "tool_gate_decision": "run_address_lane", + "tool_gate_reason": "address_mode_classifier_detected", + "answer_structure_v11": null, + "investigation_state_snapshot": null, + "normalized": null, + "normalizer_output": { + "trace_id": "7VCrbBzPVKWKcC", + "prompt_version": "normalizer_v2_0_2", + "applied": true, + "effective_message": "показать записи по счету 51 на ту же дату" + } + }, + "error_code": null, + "error_message": null + }, + { + "index": 25, + "id": "F025", + "question": "а документы по этому же договору за тот же период", + "session": "chain_contract_e", + "session_id": "asst-2026-04-02_Address_Followup_Context_Chains_2026-04-02_13-47-Run2-chain_contract_e", + "status_code": 200, + "ok": true, + "elapsed_ms": 7335, + "reply_type": "factual", + "trace_id": "address-ncmZKVr5sM", + "assistant_reply": "Точный якорь не подтвердился в текущем окне live-данных; показаны ближайшие доступные документы/операции по выбранному типу.\nСобран список документов по договору (live address lane).\nСтрок отобрано: 20.\n1. 2020-12-31T23:59:59Z | Формирование записей книги покупок 00000000004 от 31.12.2020 23:59:59 | 68.02 / 19.09 | 127216.46\n2. 2020-12-31T23:59:59Z | Формирование записей книги покупок 00000000004 от 31.12.2020 23:59:59 | 68.02 / 19.09 | 235682.42\n3. 2020-12-31T23:59:59Z | Формирование записей книги покупок 00000000004 от 31.12.2020 23:59:59 | 68.02 / 19.09 | 337318.8\n4. 2020-12-31T23:59:59Z | Регламентная операция 00000000097 от 31.12.2020 23:59:59 | 91.09 / 91.02 | 10615989.53\n5. 2020-12-31T23:59:59Z | Регламентная операция 00000000097 от 31.12.2020 23:59:59 | 91.01 / 91.09 | 1614344.98\n6. 2020-12-31T23:59:59Z | Регламентная операция 00000000097 от 31.12.2020 23:59:59 | 90.09 / 90.02.1 | 6430415.34\n7. 2020-12-31T23:59:59Z | Регламентная операция 00000000097 от 31.12.2020 23:59:59 | 90.09 / 90.03 | 2002138.93\n8. 2020-12-31T23:59:59Z | Регламентная операция 00000000097 от 31.12.2020 23:59:59 | 90.09 / 90.07.1 | 1715450.75\n9. 2020-12-31T23:59:59Z | Регламентная операция 00000000097 от 31.12.2020 23:59:59 | 90.01.1 / 90.09 | 12012833.72\n10. 2020-12-31T23:59:59Z | Регламентная операция 00000000097 от 31.12.2020 23:59:59 | 84.02 / 99.01.1 | 7136815.85\n11. 2020-12-31T23:59:59Z | Регламентная операция 00000000095 от 31.12.2020 23:59:59 | 99.01.1 / 91.09 | 121674.74\n12. 2020-12-31T23:59:59Z | Регламентная операция 00000000095 от 31.12.2020 23:59:59 | 99.01.1 / 90.09 | 130479.52\n13. 2020-12-31T23:59:59Z | Регламентная операция 00000000094 от 31.12.2020 23:59:59 | 90.07.1 / 44.01 | 5000\n14. 2020-12-31T23:59:59Z | Регламентная операция 00000000094 от 31.12.2020 23:59:59 | 90.07.1 / 44.01 | 1166.67\n15. 2020-12-31T23:59:59Z | Регламентная операция 00000000094 от 31.12.2020 23:59:59 | 90.07.1 / 44.01 | 1215.28\n16. 2020-12-31T23:59:59Z | Регламентная операция 00000000094 от 31.12.2020 23:59:59 | 90.07.1 / 44.01 | 2489.76\n17. 2020-12-31T23:59:59Z | Регламентная операция 00000000094 от 31.12.2020 23:59:59 | 90.07.1 / 44.01 | 15267\n18. 2020-12-31T23:59:59Z | Регламентная операция 00000000094 от 31.12.2020 23:59:59 | 90.07.1 / 44.01 | 23004.18\n19. 2020-12-31T23:59:59Z | Регламентная операция 00000000094 от 31.12.2020 23:59:59 | 90.07.1 / 44.01 | 76550\n20. 2020-12-31T23:59:59Z | Регламентная операция 00000000094 от 31.12.2020 23:59:59 | 90.07.1 / 44.01 | 5786.63", + "assistant_reply_first_line": "Точный якорь не подтвердился в текущем окне live-данных; показаны ближайшие доступные документы/операции по выбранному типу.", + "expected_intent": "list_documents_by_contract", + "actual_intent": "list_documents_by_contract", + "intent_match": true, + "expected_mode": "address_query", + "actual_mode": "address_query", + "mode_match": true, + "expected_reply_type": null, + "reply_match": true, + "semantic_pass": true, + "route_pass": true, + "route_health": "ok_or_factual", + "strict_policy": "route", + "strict_pass": true, + "selected_recipe": "address_documents_by_contract_v1", + "missing_required_filters": [], + "match_failure_stage": "materialized_but_not_anchor_matched", + "match_failure_reason": "contract_anchor_not_matched_in_materialized_rows", + "rows_fetched": 20, + "rows_matched": 20, + "mcp_call_status": "matched_non_empty", + "limited_reason_category": null, + "llm_decomposition_applied": true, + "llm_decomposition_reason": "normalized_fragment_applied", + "fallback_rule_hit": null, + "debug_payload": { + "trace_id": "address-ncmZKVr5sM", + "prompt_version": "address_query_runtime_v1", + "schema_version": "address_query_runtime_v1", + "fallback_type": "none", + "route_summary": null, + "fragments": [], + "requirements_extracted": [], + "coverage_report": { + "requirements_total": 0, + "requirements_covered": 0, + "requirements_uncovered": [], + "requirements_partially_covered": [], + "clarification_needed_for": [], + "out_of_scope_requirements": [] + }, + "routes": [], + "retrieval_status": [], + "retrieval_results": [], + "answer_grounding_check": { + "status": "grounded", + "route_subject_match": true, + "missing_requirements": [], + "reasons": [ + "address_entity_detected", + "document_list_signal_detected", + "documents_by_contract_signal_detected", + "period_from_followup_context", + "address_followup_context_applied", + "anchor_not_matched_fallback_rows" + ], + "why_included_summary": [], + "selection_reason_summary": [] + }, + "dropped_intent_segments": [], + "detected_mode": "address_query", + "detected_mode_confidence": "medium", + "query_shape": "DOCUMENT_LIST", + "query_shape_confidence": "medium", + "detected_intent": "list_documents_by_contract", + "detected_intent_confidence": "medium", + "extracted_filters": { + "sort": "period_desc", + "limit": 20, + "contract": "за указанный период", + "period_from": "2020-12-01", + "period_to": "2020-12-31" + }, + "missing_required_filters": [], + "selected_recipe": "address_documents_by_contract_v1", + "mcp_call_status_legacy": "matched_non_empty", + "account_scope_mode": "preferred", + "account_scope_fallback_applied": true, + "anchor_type": "contract", + "anchor_value_raw": "за указанный период", + "anchor_value_resolved": "за указанный период", + "resolver_confidence": "medium", + "ambiguity_count": 0, + "match_failure_stage": "materialized_but_not_anchor_matched", + "match_failure_reason": "contract_anchor_not_matched_in_materialized_rows", + "mcp_call_status": "matched_non_empty", + "rows_fetched": 20, + "raw_rows_received": 20, + "rows_after_account_scope": 20, + "rows_after_recipe_filter": 0, + "rows_materialized": 20, + "rows_matched": 20, + "raw_row_keys_sample": [ + "Период", + "Регистратор", + "СчетДт", + "СчетКт", + "Сумма", + "Period", + "Registrator", + "AccountDt", + "AccountKt", + "Amount" + ], + "materialization_drop_reason": "none", + "account_token_raw": null, + "account_token_normalized": null, + "account_scope_fields_checked": [ + "account_dt", + "account_kt", + "registrator", + "analytics" + ], + "account_scope_match_strategy": "account_code_regex_plus_alias_map_v1", + "account_scope_drop_reason": "not_applicable", + "runtime_readiness": "LIVE_QUERYABLE_WITH_LIMITS", + "limited_reason_category": null, + "response_type": "FACTUAL_LIST", + "execution_lane": "address_query", + "llm_decomposition_applied": true, + "llm_decomposition_attempted": true, + "llm_provider_used": "local", + "llm_decomposition_trace_id": "EwEZUxwl48MatK", + "llm_decomposition_effective_message": "документы по договору за указанный период", + "llm_decomposition_reason": "normalized_fragment_applied", + "fallback_rule_hit": null, + "sanitized_user_message": "а документы по этому же договору за тот же период", + "tool_gate_decision": "run_address_lane", + "tool_gate_reason": "address_mode_classifier_detected", + "answer_structure_v11": null, + "investigation_state_snapshot": null, + "normalized": null, + "normalizer_output": { + "trace_id": "EwEZUxwl48MatK", + "prompt_version": "normalizer_v2_0_2", + "applied": true, + "effective_message": "документы по договору за указанный период" + } + }, + "error_code": null, + "error_message": null + } + ] +} diff --git a/docs/ADDRESS/runs/2026-04-02_Address_Followup_Context_Chains_2026-04-02_13-47-Run2/response_audit.md b/docs/ADDRESS/runs/2026-04-02_Address_Followup_Context_Chains_2026-04-02_13-47-Run2/response_audit.md new file mode 100644 index 0000000..1f40941 --- /dev/null +++ b/docs/ADDRESS/runs/2026-04-02_Address_Followup_Context_Chains_2026-04-02_13-47-Run2/response_audit.md @@ -0,0 +1,29 @@ +# Response Audit: 2026-04-02_Address_Followup_Context_Chains_2026-04-02_13-47-Run2 + +| id | strict | route_health | reply_type | intent | limited_reason | question | assistant_first_line | +|---|---|---|---|---|---|---|---| +| F001 | True | ok_or_factual | factual | list_documents_by_counterparty | None | Покажи документы по СВК за 2020 | Собран список документов по контрагенту (live address lane). | +| F002 | True | ok_or_factual | factual | list_documents_by_counterparty | None | а теперь только за май 2020 | По окну 2020-05-01..2020-05-31 строк не найдено; показаны ближайшие доступные данные 2020-07-27..2021-11-10. | +| F003 | True | ok_or_factual | factual | account_balance_snapshot | None | а по счету 60.01 на ту же дату | Адресный срез по счету собран (по движениям live MCP). | +| F004 | True | ok_or_factual | factual | account_balance_snapshot | None | а на ту же дату по 62.01 | Адресный срез по счету собран (по движениям live MCP). | +| F005 | True | ok_or_factual | factual | documents_forming_balance | None | раскрой остаток по 62.01 документами на ту же дату | Собран drilldown документов, формирующих остаток по счету на указанную дату. | +| F006 | True | ok_or_factual | factual | bank_operations_by_counterparty | None | Покажи банковские операции по СВК за 2020 | Точный якорь не подтвердился в текущем окне live-данных; показаны ближайшие доступные документы/операции по выбранному типу. | +| F007 | True | ok_or_factual | factual | bank_operations_by_counterparty | None | а теперь только ноябрь 2020 | Точный якорь не подтвердился в текущем окне live-данных; показаны ближайшие доступные документы/операции по выбранному типу. | +| F008 | True | ok_or_factual | factual | list_documents_by_counterparty | None | а теперь документы по нему | Точный якорь не подтвердился в текущем окне live-данных; показаны ближайшие доступные документы/операции по выбранному типу. | +| F009 | True | ok_or_factual | factual | account_balance_snapshot | None | и остаток по 51 на ту же дату | Адресный срез по счету собран (по движениям live MCP). | +| F010 | True | ok_or_factual | factual | account_balance_snapshot | None | а теперь только май 2020 | Адресный срез по счету собран (по движениям live MCP). | +| F011 | True | partial_non_blocking | partial_coverage | account_balance_snapshot | empty_match | Покажи сальдо по счету 60 на 2020-12-31 | В live-данных по текущему фильтру записи не найдены. | +| F012 | True | ok_or_factual | factual | account_balance_snapshot | None | а теперь только май 2020 | Адресный срез по счету собран (по движениям live MCP). | +| F013 | True | ok_or_factual | factual | account_balance_snapshot | None | а на ту же дату по 62 | Адресный срез по счету собран (по движениям live MCP). | +| F014 | True | ok_or_factual | factual | documents_forming_balance | None | раскрой 62 документами на ту же дату | Собран drilldown документов, формирующих остаток по счету на указанную дату. | +| F015 | True | partial_non_blocking | partial_coverage | account_balance_snapshot | empty_match | вернись на 2020-12-31 по 60 | В live-данных по текущему фильтру записи не найдены. | +| F016 | True | ok_or_factual | factual | list_documents_by_contract | None | Покажи документы по договору 24/15 за 2020 | Период сохранен. Глубина live-выборки автоматически расширена до 1000 строк. | +| F017 | True | ok_or_factual | factual | bank_operations_by_contract | None | а теперь банковские операции | Период сохранен. Глубина live-выборки автоматически расширена до 1000 строк. | +| F018 | True | ok_or_factual | factual | bank_operations_by_contract | None | а теперь только май 2020 | По окну 2020-05-01..2020-05-31 строк не найдено; показаны ближайшие доступные данные 2020-10-15..2020-10-15. | +| F019 | False | likely_blocked_route | partial_coverage | open_items_by_counterparty_or_contract | empty_match | есть ли открытые позиции на ту же дату | В live-данных по текущему фильтру записи не найдены. | +| F020 | True | ok_or_factual | factual | list_documents_by_contract | None | покажи документы по этому же договору | По окну 2020-05-01..2020-05-31 строк не найдено; показаны ближайшие доступные данные 2020-10-15..2020-10-15. | +| F021 | True | ok_or_factual | factual | bank_operations_by_contract | None | Покажи банковские операции по договору 24/15 | Собран список банковских операций по договору (live address lane). | +| F022 | False | likely_blocked_route | partial_coverage | open_items_by_counterparty_or_contract | empty_match | а теперь открытые позиции по нему | В live-данных по текущему фильтру записи не найдены. | +| F023 | False | likely_blocked_route | partial_coverage | open_items_by_counterparty_or_contract | empty_match | а теперь на 2020-12 | В live-данных по текущему фильтру записи не найдены. | +| F024 | True | ok_or_factual | factual | account_balance_snapshot | None | а по счету 51 на ту же дату | Адресный срез по счету собран (по движениям live MCP). | +| F025 | True | ok_or_factual | factual | list_documents_by_contract | None | а документы по этому же договору за тот же период | Точный якорь не подтвердился в текущем окне live-данных; показаны ближайшие доступные документы/операции по выбранному типу. | diff --git a/docs/ADDRESS/runs/2026-04-02_Address_Followup_Context_Chains_2026-04-02_13-47-Run2/run_summary.json b/docs/ADDRESS/runs/2026-04-02_Address_Followup_Context_Chains_2026-04-02_13-47-Run2/run_summary.json new file mode 100644 index 0000000..d943247 --- /dev/null +++ b/docs/ADDRESS/runs/2026-04-02_Address_Followup_Context_Chains_2026-04-02_13-47-Run2/run_summary.json @@ -0,0 +1,57 @@ +{ + "run_id": "2026-04-02_Address_Followup_Context_Chains_2026-04-02_13-47-Run2", + "generated_at": "2026-04-02T13:58:22", + "source_questions_file": "X:\\1C\\NDC_1C\\docs\\ADDRESS\\question_sets\\address_followup_context_chains_2026-04-02.json", + "backend_url": "http://127.0.0.1:8787/api/assistant/message", + "llm_provider": "local", + "llm_model": "qwen2.5-14b-instruct-1m", + "llm_base_url": "http://127.0.0.1:1234", + "strict_policy": "route", + "totals": { + "questions_total": 25, + "ok_200_count": 25, + "semantic_pass_count": 25, + "semantic_pass_rate": 1.0, + "route_pass_count": 22, + "route_pass_rate": 0.88, + "strict_pass_count": 22, + "strict_pass_rate": 0.88, + "factual_count": 20, + "partial_coverage_count": 5, + "clarification_required_count": 0, + "http_error_count": 0, + "llm_decomposition_applied_count": 12, + "avg_elapsed_ms": 4528 + }, + "distributions": { + "reply_type": { + "factual": 20, + "partial_coverage": 5 + }, + "actual_intent": { + "list_documents_by_counterparty": 3, + "account_balance_snapshot": 9, + "documents_forming_balance": 2, + "bank_operations_by_counterparty": 2, + "list_documents_by_contract": 3, + "bank_operations_by_contract": 3, + "open_items_by_counterparty_or_contract": 3 + }, + "actual_mode": { + "address_query": 25 + }, + "mcp_call_status": { + "matched_non_empty": 20, + "no_raw_rows": 2, + "materialized_but_not_anchor_matched": 3 + }, + "limited_reason_category": { + "empty_match": 5 + }, + "route_health": { + "ok_or_factual": 20, + "partial_non_blocking": 2, + "likely_blocked_route": 3 + } + } +} diff --git a/docs/ADDRESS/runs/2026-04-02_Address_Followup_Context_Chains_2026-04-02_19-15-Run5/README.md b/docs/ADDRESS/runs/2026-04-02_Address_Followup_Context_Chains_2026-04-02_19-15-Run5/README.md new file mode 100644 index 0000000..a894dc4 --- /dev/null +++ b/docs/ADDRESS/runs/2026-04-02_Address_Followup_Context_Chains_2026-04-02_19-15-Run5/README.md @@ -0,0 +1,28 @@ +# 2026-04-02_Address_Followup_Context_Chains_2026-04-02_19-15-Run5 + +Generated at: 2026-04-02T14:51:52 +Questions file: X:\1C\NDC_1C\docs\ADDRESS\question_sets\address_followup_context_chains_2026-04-02.json +Backend URL: http://127.0.0.1:8787/api/assistant/message +LLM: local / qwen2.5-14b-instruct-1m @ http://127.0.0.1:1234 +Strict policy: route + +## Totals +- questions_total: 25 +- ok_200_count: 25 +- semantic_pass_count: 25 +- semantic_pass_rate: 1.0 +- route_pass_count: 25 +- route_pass_rate: 1.0 +- strict_pass_count: 25 +- strict_pass_rate: 1.0 +- factual_count: 23 +- partial_coverage_count: 2 +- clarification_required_count: 0 +- http_error_count: 0 +- llm_decomposition_applied_count: 13 +- avg_elapsed_ms: 4896.8 + +## Files +- run_summary.json +- full_live_results.json +- failures_only.json diff --git a/docs/ADDRESS/runs/2026-04-02_Address_Followup_Context_Chains_2026-04-02_19-15-Run5/failures_only.json b/docs/ADDRESS/runs/2026-04-02_Address_Followup_Context_Chains_2026-04-02_19-15-Run5/failures_only.json new file mode 100644 index 0000000..fe51488 --- /dev/null +++ b/docs/ADDRESS/runs/2026-04-02_Address_Followup_Context_Chains_2026-04-02_19-15-Run5/failures_only.json @@ -0,0 +1 @@ +[] diff --git a/docs/ADDRESS/runs/2026-04-02_Address_Followup_Context_Chains_2026-04-02_19-15-Run5/full_live_results.json b/docs/ADDRESS/runs/2026-04-02_Address_Followup_Context_Chains_2026-04-02_19-15-Run5/full_live_results.json new file mode 100644 index 0000000..b28f9fd --- /dev/null +++ b/docs/ADDRESS/runs/2026-04-02_Address_Followup_Context_Chains_2026-04-02_19-15-Run5/full_live_results.json @@ -0,0 +1,3837 @@ +{ + "run_id": "2026-04-02_Address_Followup_Context_Chains_2026-04-02_19-15-Run5", + "generated_at": "2026-04-02T14:51:52", + "summary": { + "run_id": "2026-04-02_Address_Followup_Context_Chains_2026-04-02_19-15-Run5", + "generated_at": "2026-04-02T14:51:52", + "source_questions_file": "X:\\1C\\NDC_1C\\docs\\ADDRESS\\question_sets\\address_followup_context_chains_2026-04-02.json", + "backend_url": "http://127.0.0.1:8787/api/assistant/message", + "llm_provider": "local", + "llm_model": "qwen2.5-14b-instruct-1m", + "llm_base_url": "http://127.0.0.1:1234", + "strict_policy": "route", + "totals": { + "questions_total": 25, + "ok_200_count": 25, + "semantic_pass_count": 25, + "semantic_pass_rate": 1.0, + "route_pass_count": 25, + "route_pass_rate": 1.0, + "strict_pass_count": 25, + "strict_pass_rate": 1.0, + "factual_count": 23, + "partial_coverage_count": 2, + "clarification_required_count": 0, + "http_error_count": 0, + "llm_decomposition_applied_count": 13, + "avg_elapsed_ms": 4896.8 + }, + "distributions": { + "reply_type": { + "factual": 23, + "partial_coverage": 2 + }, + "actual_intent": { + "list_documents_by_counterparty": 3, + "account_balance_snapshot": 9, + "documents_forming_balance": 2, + "bank_operations_by_counterparty": 2, + "list_documents_by_contract": 3, + "bank_operations_by_contract": 3, + "open_items_by_counterparty_or_contract": 3 + }, + "actual_mode": { + "address_query": 25 + }, + "mcp_call_status": { + "matched_non_empty": 23, + "no_raw_rows": 2 + }, + "limited_reason_category": { + "empty_match": 2 + }, + "route_health": { + "ok_or_factual": 23, + "partial_non_blocking": 2 + } + } + }, + "rows": [ + { + "index": 1, + "id": "F001", + "question": "Покажи документы по СВК за 2020", + "session": "chain_docs_svk_a", + "session_id": "asst-2026-04-02_Address_Followup_Context_Chains_2026-04-02_19-15-Run5-chain_docs_svk_a", + "status_code": 200, + "ok": true, + "elapsed_ms": 6468, + "reply_type": "factual", + "trace_id": "address-MMecuZiCff", + "assistant_reply": "Собран список документов по контрагенту (live address lane).\nСтрок отобрано: 3.\n1. 2020-12-30T12:00:00Z | Поступление на расчетный счет 00000000044 от 30.12.2020 12:00:00 | 0 / 0 | 3248300 | аналитика: Группа\n2. 2020-12-16T16:20:53Z | Поступление на расчетный счет 00000000043 от 16.12.2020 16:20:53 | 0 / 0 | 216600 | аналитика: Группа\n3. 2020-12-14T12:00:00Z | Поступление на расчетный счет 00000000042 от 14.12.2020 12:00:00 | 0 / 0 | 200000 | аналитика: Группа", + "assistant_reply_first_line": "Собран список документов по контрагенту (live address lane).", + "expected_intent": "list_documents_by_counterparty", + "actual_intent": "list_documents_by_counterparty", + "intent_match": true, + "expected_mode": "address_query", + "actual_mode": "address_query", + "mode_match": true, + "expected_reply_type": null, + "reply_match": true, + "semantic_pass": true, + "route_pass": true, + "route_health": "ok_or_factual", + "strict_policy": "route", + "strict_pass": true, + "selected_recipe": "address_documents_by_counterparty_v1", + "missing_required_filters": [], + "match_failure_stage": "none", + "match_failure_reason": null, + "rows_fetched": 20, + "rows_matched": 3, + "mcp_call_status": "matched_non_empty", + "limited_reason_category": null, + "llm_decomposition_applied": true, + "llm_decomposition_reason": "normalized_fragment_applied", + "fallback_rule_hit": null, + "debug_payload": { + "trace_id": "address-MMecuZiCff", + "prompt_version": "address_query_runtime_v1", + "schema_version": "address_query_runtime_v1", + "fallback_type": "none", + "route_summary": null, + "fragments": [], + "requirements_extracted": [], + "coverage_report": { + "requirements_total": 0, + "requirements_covered": 0, + "requirements_uncovered": [], + "requirements_partially_covered": [], + "clarification_needed_for": [], + "out_of_scope_requirements": [] + }, + "routes": [], + "retrieval_status": [], + "retrieval_results": [], + "answer_grounding_check": { + "status": "grounded", + "route_subject_match": true, + "missing_requirements": [], + "reasons": [ + "address_action_detected", + "address_entity_detected", + "document_list_signal_detected", + "documents_by_counterparty_signal_detected" + ], + "why_included_summary": [], + "selection_reason_summary": [] + }, + "dropped_intent_segments": [], + "detected_mode": "address_query", + "detected_mode_confidence": "high", + "query_shape": "DOCUMENT_LIST", + "query_shape_confidence": "medium", + "detected_intent": "list_documents_by_counterparty", + "detected_intent_confidence": "medium", + "extracted_filters": { + "sort": "period_desc", + "limit": 20, + "counterparty": "СВК", + "period_from": "2020-01-01", + "period_to": "2020-12-31" + }, + "missing_required_filters": [], + "selected_recipe": "address_documents_by_counterparty_v1", + "mcp_call_status_legacy": "matched_non_empty", + "account_scope_mode": "preferred", + "account_scope_fallback_applied": false, + "anchor_type": "counterparty", + "anchor_value_raw": "СВК", + "anchor_value_resolved": "Группа СВК", + "resolver_confidence": "medium", + "ambiguity_count": 0, + "match_failure_stage": "none", + "match_failure_reason": null, + "mcp_call_status": "matched_non_empty", + "rows_fetched": 20, + "raw_rows_received": 20, + "rows_after_account_scope": 5, + "rows_after_recipe_filter": 3, + "rows_materialized": 5, + "rows_matched": 3, + "raw_row_keys_sample": [ + "Период", + "Регистратор", + "СчетДт", + "СчетКт", + "Сумма", + "Контрагент", + "Period", + "Registrator", + "Amount" + ], + "materialization_drop_reason": "none", + "account_token_raw": null, + "account_token_normalized": null, + "account_scope_fields_checked": [ + "account_dt", + "account_kt", + "registrator", + "analytics" + ], + "account_scope_match_strategy": "account_code_regex_plus_alias_map_v1", + "account_scope_drop_reason": "not_applicable", + "runtime_readiness": "LIVE_QUERYABLE_WITH_LIMITS", + "limited_reason_category": null, + "response_type": "FACTUAL_LIST", + "execution_lane": "address_query", + "llm_decomposition_applied": true, + "llm_decomposition_attempted": true, + "llm_provider_used": "local", + "llm_decomposition_trace_id": "NDayubTSl2ajHs", + "llm_decomposition_effective_message": "Показать документы по СВК за период 2020 год.", + "llm_decomposition_reason": "normalized_fragment_applied", + "fallback_rule_hit": null, + "sanitized_user_message": "покажи документы по свк за 2020", + "tool_gate_decision": "run_address_lane", + "tool_gate_reason": "address_mode_classifier_detected", + "answer_structure_v11": null, + "investigation_state_snapshot": null, + "normalized": null, + "normalizer_output": { + "trace_id": "NDayubTSl2ajHs", + "prompt_version": "normalizer_v2_0_2", + "applied": true, + "effective_message": "Показать документы по СВК за период 2020 год." + } + }, + "error_code": null, + "error_message": null + }, + { + "index": 2, + "id": "F002", + "question": "а теперь только за май 2020", + "session": "chain_docs_svk_a", + "session_id": "asst-2026-04-02_Address_Followup_Context_Chains_2026-04-02_19-15-Run5-chain_docs_svk_a", + "status_code": 200, + "ok": true, + "elapsed_ms": 3270, + "reply_type": "factual", + "trace_id": "address-X_zSv3ljLn", + "assistant_reply": "По окну 2020-05-01..2020-05-31 строк не найдено; показаны ближайшие доступные данные 2020-07-27..2021-11-10.\nСобран список документов по контрагенту (live address lane).\nСтрок отобрано: 26.\n1. 2021-11-10T12:00:07Z | Поступление на расчетный счет 00000000013 от 10.11.2021 12:00:07 | 0 / 0 | 20000 | аналитика: Группа\n2. 2021-09-29T12:00:03Z | Поступление на расчетный счет 00000000012 от 29.09.2021 12:00:03 | 0 / 0 | 50000 | аналитика: Группа\n3. 2021-08-31T12:00:04Z | Поступление на расчетный счет 00000000011 от 31.08.2021 12:00:04 | 0 / 0 | 120500 | аналитика: Группа\n4. 2021-06-22T12:00:00Z | Поступление на расчетный счет 00000000010 от 22.06.2021 12:00:00 | 0 / 0 | 498630 | аналитика: Группа\n5. 2021-06-09T12:00:05Z | Поступление на расчетный счет 00000000009 от 09.06.2021 12:00:05 | 0 / 0 | 418960 | аналитика: Группа\n6. 2021-04-28T12:00:08Z | Поступление на расчетный счет 00000000008 от 28.04.2021 12:00:08 | 0 / 0 | 564300 | аналитика: Группа\n7. 2021-04-22T12:00:00Z | Поступление на расчетный счет 00000000007 от 22.04.2021 12:00:00 | 0 / 0 | 982420 | аналитика: Группа\n8. 2021-04-13T12:00:11Z | Поступление на расчетный счет 00000000006 от 13.04.2021 12:00:11 | 0 / 0 | 1882400 | аналитика: Группа\n9. 2021-03-25T12:00:02Z | Поступление на расчетный счет 00000000005 от 25.03.2021 12:00:02 | 0 / 0 | 644315 | аналитика: Группа\n10. 2021-03-24T12:00:03Z | Поступление на расчетный счет 00000000004 от 24.03.2021 12:00:03 | 0 / 0 | 1219990 | аналитика: Группа\n11. 2021-03-18T12:00:00Z | Поступление на расчетный счет 00000000003 от 18.03.2021 12:00:00 | 0 / 0 | 1425310 | аналитика: Группа\n12. 2021-03-12T12:00:03Z | Поступление на расчетный счет 00000000002 от 12.03.2021 12:00:03 | 0 / 0 | 214600 | аналитика: Группа\n13. 2021-02-19T12:00:01Z | Поступление на расчетный счет 00000000001 от 19.02.2021 12:00:01 | 0 / 0 | 518600 | аналитика: Группа\n14. 2020-12-30T12:00:00Z | Поступление на расчетный счет 00000000044 от 30.12.2020 12:00:00 | 0 / 0 | 3248300 | аналитика: Группа\n15. 2020-12-16T16:20:53Z | Поступление на расчетный счет 00000000043 от 16.12.2020 16:20:53 | 0 / 0 | 216600 | аналитика: Группа\n16. 2020-12-14T12:00:00Z | Поступление на расчетный счет 00000000042 от 14.12.2020 12:00:00 | 0 / 0 | 200000 | аналитика: Группа\n17. 2020-11-30T12:00:07Z | Поступление на расчетный счет 00000000041 от 30.11.2020 12:00:07 | 0 / 0 | 38900 | аналитика: Группа\n18. 2020-11-19T12:00:04Z | Поступление на расчетный счет 00000000039 от 19.11.2020 12:00:04 | 0 / 0 | 3320600 | аналитика: Группа\n19. 2020-11-18T12:00:05Z | Поступление на расчетный счет 00000000038 от 18.11.2020 12:00:05 | 0 / 0 | 745300 | аналитика: Группа\n20. 2020-11-18T12:00:04Z | Поступление на расчетный счет 00000000037 от 18.11.2020 12:00:04 | 0 / 0 | 320000 | аналитика: Группа\n21. 2020-11-13T12:00:03Z | Поступление на расчетный счет 00000000036 от 13.11.2020 12:00:03 | 0 / 0 | 313600 | аналитика: Группа\n22. 2020-11-10T15:39:13Z | Поступление на расчетный счет 00000000035 от 10.11.2020 15:39:13 | 0 / 0 | 328300 | аналитика: Группа\n23. 2020-10-26T12:00:00Z | Поступление на расчетный счет 00000000034 от 26.10.2020 12:00:00 | 0 / 0 | 175000 | аналитика: Группа\n24. 2020-08-20T12:00:06Z | Поступление на расчетный счет 00000000032 от 20.08.2020 12:00:06 | 0 / 0 | 3126005 | аналитика: Группа\n25. 2020-07-30T12:00:00Z | Поступление на расчетный счет 00000000029 от 30.07.2020 12:00:00 | 0 / 0 | 20000 | аналитика: Группа\n26. 2020-07-27T12:00:00Z | Поступление на расчетный счет 00000000028 от 27.07.2020 12:00:00 | 0 / 0 | 40860 | аналитика: Группа", + "assistant_reply_first_line": "По окну 2020-05-01..2020-05-31 строк не найдено; показаны ближайшие доступные данные 2020-07-27..2021-11-10.", + "expected_intent": "list_documents_by_counterparty", + "actual_intent": "list_documents_by_counterparty", + "intent_match": true, + "expected_mode": "address_query", + "actual_mode": "address_query", + "mode_match": true, + "expected_reply_type": null, + "reply_match": true, + "semantic_pass": true, + "route_pass": true, + "route_health": "ok_or_factual", + "strict_policy": "route", + "strict_pass": true, + "selected_recipe": "address_documents_by_counterparty_v1", + "missing_required_filters": [], + "match_failure_stage": "none", + "match_failure_reason": null, + "rows_fetched": 1000, + "rows_matched": 26, + "mcp_call_status": "matched_non_empty", + "limited_reason_category": null, + "llm_decomposition_applied": false, + "llm_decomposition_reason": "not_address_like", + "fallback_rule_hit": null, + "debug_payload": { + "trace_id": "address-X_zSv3ljLn", + "prompt_version": "address_query_runtime_v1", + "schema_version": "address_query_runtime_v1", + "fallback_type": "none", + "route_summary": null, + "fragments": [], + "requirements_extracted": [], + "coverage_report": { + "requirements_total": 0, + "requirements_covered": 0, + "requirements_uncovered": [], + "requirements_partially_covered": [], + "clarification_needed_for": [], + "out_of_scope_requirements": [] + }, + "routes": [], + "retrieval_status": [], + "retrieval_results": [], + "answer_grounding_check": { + "status": "grounded", + "route_subject_match": true, + "missing_requirements": [], + "reasons": [ + "no_address_or_deep_signal", + "address_mode_from_followup_context", + "shape_not_detected", + "intent_not_supported_in_v1", + "intent_from_followup_context", + "counterparty_from_followup_context", + "address_followup_context_applied", + "period_window_auto_broadened_to_available_data" + ], + "why_included_summary": [], + "selection_reason_summary": [] + }, + "dropped_intent_segments": [], + "detected_mode": "address_query", + "detected_mode_confidence": "medium", + "query_shape": "UNKNOWN", + "query_shape_confidence": "low", + "detected_intent": "list_documents_by_counterparty", + "detected_intent_confidence": "low", + "extracted_filters": { + "sort": "period_desc", + "limit": 20, + "period_from": "2020-05-01", + "period_to": "2020-05-31", + "counterparty": "СВК" + }, + "missing_required_filters": [], + "selected_recipe": "address_documents_by_counterparty_v1", + "mcp_call_status_legacy": "matched_non_empty", + "account_scope_mode": "preferred", + "account_scope_fallback_applied": false, + "anchor_type": "counterparty", + "anchor_value_raw": "СВК", + "anchor_value_resolved": "Группа СВК", + "resolver_confidence": "medium", + "ambiguity_count": 0, + "match_failure_stage": "none", + "match_failure_reason": null, + "mcp_call_status": "matched_non_empty", + "rows_fetched": 1000, + "raw_rows_received": 1000, + "rows_after_account_scope": 124, + "rows_after_recipe_filter": 26, + "rows_materialized": 124, + "rows_matched": 26, + "raw_row_keys_sample": [ + "Период", + "Регистратор", + "СчетДт", + "СчетКт", + "Сумма", + "Контрагент", + "Period", + "Registrator", + "Amount" + ], + "materialization_drop_reason": "none", + "account_token_raw": null, + "account_token_normalized": null, + "account_scope_fields_checked": [ + "account_dt", + "account_kt", + "registrator", + "analytics" + ], + "account_scope_match_strategy": "account_code_regex_plus_alias_map_v1", + "account_scope_drop_reason": "not_applicable", + "runtime_readiness": "LIVE_QUERYABLE_WITH_LIMITS", + "limited_reason_category": null, + "response_type": "FACTUAL_LIST", + "execution_lane": "address_query", + "llm_decomposition_applied": false, + "llm_decomposition_attempted": false, + "llm_provider_used": "local", + "llm_decomposition_trace_id": null, + "llm_decomposition_effective_message": "а теперь только за май 2020", + "llm_decomposition_reason": "not_address_like", + "fallback_rule_hit": null, + "sanitized_user_message": "а теперь только за май 2020", + "tool_gate_decision": "run_address_lane", + "tool_gate_reason": "followup_context_detected", + "answer_structure_v11": null, + "investigation_state_snapshot": null, + "normalized": null, + "normalizer_output": null + }, + "error_code": null, + "error_message": null + }, + { + "index": 3, + "id": "F003", + "question": "а по счету 60.01 на ту же дату", + "session": "chain_docs_svk_a", + "session_id": "asst-2026-04-02_Address_Followup_Context_Chains_2026-04-02_19-15-Run5-chain_docs_svk_a", + "status_code": 200, + "ok": true, + "elapsed_ms": 5820, + "reply_type": "factual", + "trace_id": "address-ZsOmPb-KEq", + "assistant_reply": "Адресный срез по счету собран (по движениям live MCP).\nСтрок отобрано: 5.\nСумма по отобранным движениям: 707200.\n1. 2020-05-22T10:12:50Z | Списание с расчетного счета 00000000147 от 22.05.2020 10:12:50 | 60.01 / 51 | 75367\n2. 2020-05-22T10:12:50Z | Списание с расчетного счета 00000000147 от 22.05.2020 10:12:50 | 60.01 / 51 | 211833\n3. 2020-05-18T12:00:02Z | Списание с расчетного счета 00000000145 от 18.05.2020 12:00:02 | 60.01 / 51 | 187967\n4. 2020-05-18T12:00:02Z | Списание с расчетного счета 00000000145 от 18.05.2020 12:00:02 | 60.01 / 51 | 162033", + "assistant_reply_first_line": "Адресный срез по счету собран (по движениям live MCP).", + "expected_intent": "account_balance_snapshot", + "actual_intent": "account_balance_snapshot", + "intent_match": true, + "expected_mode": "address_query", + "actual_mode": "address_query", + "mode_match": true, + "expected_reply_type": null, + "reply_match": true, + "semantic_pass": true, + "route_pass": true, + "route_health": "ok_or_factual", + "strict_policy": "route", + "strict_pass": true, + "selected_recipe": "address_movements_account_snapshot_v1", + "missing_required_filters": [], + "match_failure_stage": "none", + "match_failure_reason": null, + "rows_fetched": 5, + "rows_matched": 5, + "mcp_call_status": "matched_non_empty", + "limited_reason_category": null, + "llm_decomposition_applied": true, + "llm_decomposition_reason": "normalized_fragment_applied", + "fallback_rule_hit": null, + "debug_payload": { + "trace_id": "address-ZsOmPb-KEq", + "prompt_version": "address_query_runtime_v1", + "schema_version": "address_query_runtime_v1", + "fallback_type": "none", + "route_summary": null, + "fragments": [], + "requirements_extracted": [], + "coverage_report": { + "requirements_total": 0, + "requirements_covered": 0, + "requirements_uncovered": [], + "requirements_partially_covered": [], + "clarification_needed_for": [], + "out_of_scope_requirements": [] + }, + "routes": [], + "retrieval_status": [], + "retrieval_results": [], + "answer_grounding_check": { + "status": "grounded", + "route_subject_match": true, + "missing_requirements": [], + "reasons": [ + "address_entity_detected", + "shape_not_detected", + "account_balance_signal_detected", + "as_of_date_from_followup_context", + "period_from_followup_context", + "address_followup_context_applied" + ], + "why_included_summary": [], + "selection_reason_summary": [] + }, + "dropped_intent_segments": [], + "detected_mode": "address_query", + "detected_mode_confidence": "medium", + "query_shape": "UNKNOWN", + "query_shape_confidence": "low", + "detected_intent": "account_balance_snapshot", + "detected_intent_confidence": "high", + "extracted_filters": { + "sort": "period_desc", + "limit": 20, + "account": "60.01", + "as_of_date": "2020-05-31", + "period_from": "2020-05-01", + "period_to": "2020-05-31" + }, + "missing_required_filters": [], + "selected_recipe": "address_movements_account_snapshot_v1", + "mcp_call_status_legacy": "matched_non_empty", + "account_scope_mode": "strict", + "account_scope_fallback_applied": false, + "anchor_type": "account", + "anchor_value_raw": "60.01", + "anchor_value_resolved": "60.01", + "resolver_confidence": "high", + "ambiguity_count": 0, + "match_failure_stage": "none", + "match_failure_reason": null, + "mcp_call_status": "matched_non_empty", + "rows_fetched": 5, + "raw_rows_received": 5, + "rows_after_account_scope": 5, + "rows_after_recipe_filter": 5, + "rows_materialized": 5, + "rows_matched": 5, + "raw_row_keys_sample": [ + "Период", + "Регистратор", + "СчетДт", + "СчетКт", + "Сумма", + "Period", + "Registrator", + "AccountDt", + "AccountKt", + "Amount" + ], + "materialization_drop_reason": "none", + "account_token_raw": "60.01", + "account_token_normalized": "60.1", + "account_scope_fields_checked": [ + "account_dt", + "account_kt", + "registrator", + "analytics" + ], + "account_scope_match_strategy": "account_code_regex_plus_alias_map_v1", + "account_scope_drop_reason": "rows_remaining_after_scope_filter", + "runtime_readiness": "LIVE_QUERYABLE_WITH_LIMITS", + "limited_reason_category": null, + "response_type": "FACTUAL_SUMMARY", + "execution_lane": "address_query", + "llm_decomposition_applied": true, + "llm_decomposition_attempted": true, + "llm_provider_used": "local", + "llm_decomposition_trace_id": "BnxF6H_2kmsOS_", + "llm_decomposition_effective_message": "по счету 60.01 на ту же дату", + "llm_decomposition_reason": "normalized_fragment_applied", + "fallback_rule_hit": null, + "sanitized_user_message": "а по счету 60.01 на ту же дату", + "tool_gate_decision": "run_address_lane", + "tool_gate_reason": "address_mode_classifier_detected", + "answer_structure_v11": null, + "investigation_state_snapshot": null, + "normalized": null, + "normalizer_output": { + "trace_id": "BnxF6H_2kmsOS_", + "prompt_version": "normalizer_v2_0_2", + "applied": true, + "effective_message": "по счету 60.01 на ту же дату" + } + }, + "error_code": null, + "error_message": null + }, + { + "index": 4, + "id": "F004", + "question": "а на ту же дату по 62.01", + "session": "chain_docs_svk_a", + "session_id": "asst-2026-04-02_Address_Followup_Context_Chains_2026-04-02_19-15-Run5-chain_docs_svk_a", + "status_code": 200, + "ok": true, + "elapsed_ms": 1003, + "reply_type": "factual", + "trace_id": "address-v8jrIko27L", + "assistant_reply": "Адресный срез по счету собран (по движениям live MCP).\nСтрок отобрано: 2.\nСумма по отобранным движениям: 1530000.\n1. 2020-05-18T12:00:01Z | Реализация товаров и услуг 00000000002 от 18.05.2020 12:00:01 | 62.01 / 90.01.1 | 765000\n2. 2020-05-18T12:00:01Z | Реализация товаров и услуг 00000000002 от 18.05.2020 12:00:01 | 62.02 / 62.01 | 765000", + "assistant_reply_first_line": "Адресный срез по счету собран (по движениям live MCP).", + "expected_intent": "account_balance_snapshot", + "actual_intent": "account_balance_snapshot", + "intent_match": true, + "expected_mode": "address_query", + "actual_mode": "address_query", + "mode_match": true, + "expected_reply_type": null, + "reply_match": true, + "semantic_pass": true, + "route_pass": true, + "route_health": "ok_or_factual", + "strict_policy": "route", + "strict_pass": true, + "selected_recipe": "address_movements_account_snapshot_v1", + "missing_required_filters": [], + "match_failure_stage": "none", + "match_failure_reason": null, + "rows_fetched": 2, + "rows_matched": 2, + "mcp_call_status": "matched_non_empty", + "limited_reason_category": null, + "llm_decomposition_applied": false, + "llm_decomposition_reason": "not_address_like", + "fallback_rule_hit": null, + "debug_payload": { + "trace_id": "address-v8jrIko27L", + "prompt_version": "address_query_runtime_v1", + "schema_version": "address_query_runtime_v1", + "fallback_type": "none", + "route_summary": null, + "fragments": [], + "requirements_extracted": [], + "coverage_report": { + "requirements_total": 0, + "requirements_covered": 0, + "requirements_uncovered": [], + "requirements_partially_covered": [], + "clarification_needed_for": [], + "out_of_scope_requirements": [] + }, + "routes": [], + "retrieval_status": [], + "retrieval_results": [], + "answer_grounding_check": { + "status": "grounded", + "route_subject_match": true, + "missing_requirements": [], + "reasons": [ + "address_entity_detected", + "shape_not_detected", + "intent_not_supported_in_v1", + "intent_adjusted_to_balance_followup_context", + "as_of_date_from_followup_context", + "period_from_followup_context", + "address_followup_context_applied" + ], + "why_included_summary": [], + "selection_reason_summary": [] + }, + "dropped_intent_segments": [], + "detected_mode": "address_query", + "detected_mode_confidence": "medium", + "query_shape": "UNKNOWN", + "query_shape_confidence": "low", + "detected_intent": "account_balance_snapshot", + "detected_intent_confidence": "low", + "extracted_filters": { + "sort": "period_desc", + "limit": 20, + "account": "62.01", + "as_of_date": "2020-05-31", + "period_from": "2020-05-01", + "period_to": "2020-05-31" + }, + "missing_required_filters": [], + "selected_recipe": "address_movements_account_snapshot_v1", + "mcp_call_status_legacy": "matched_non_empty", + "account_scope_mode": "strict", + "account_scope_fallback_applied": false, + "anchor_type": "account", + "anchor_value_raw": "62.01", + "anchor_value_resolved": "62.01", + "resolver_confidence": "high", + "ambiguity_count": 0, + "match_failure_stage": "none", + "match_failure_reason": null, + "mcp_call_status": "matched_non_empty", + "rows_fetched": 2, + "raw_rows_received": 2, + "rows_after_account_scope": 2, + "rows_after_recipe_filter": 2, + "rows_materialized": 2, + "rows_matched": 2, + "raw_row_keys_sample": [ + "Период", + "Регистратор", + "СчетДт", + "СчетКт", + "Сумма", + "Period", + "Registrator", + "AccountDt", + "AccountKt", + "Amount" + ], + "materialization_drop_reason": "none", + "account_token_raw": "62.01", + "account_token_normalized": "62.1", + "account_scope_fields_checked": [ + "account_dt", + "account_kt", + "registrator", + "analytics" + ], + "account_scope_match_strategy": "account_code_regex_plus_alias_map_v1", + "account_scope_drop_reason": "rows_remaining_after_scope_filter", + "runtime_readiness": "LIVE_QUERYABLE_WITH_LIMITS", + "limited_reason_category": null, + "response_type": "FACTUAL_SUMMARY", + "execution_lane": "address_query", + "llm_decomposition_applied": false, + "llm_decomposition_attempted": false, + "llm_provider_used": "local", + "llm_decomposition_trace_id": null, + "llm_decomposition_effective_message": "а на ту же дату по 62.01", + "llm_decomposition_reason": "not_address_like", + "fallback_rule_hit": null, + "sanitized_user_message": "а на ту же дату по 62.01", + "tool_gate_decision": "run_address_lane", + "tool_gate_reason": "address_mode_classifier_detected", + "answer_structure_v11": null, + "investigation_state_snapshot": null, + "normalized": null, + "normalizer_output": null + }, + "error_code": null, + "error_message": null + }, + { + "index": 5, + "id": "F005", + "question": "раскрой остаток по 62.01 документами на ту же дату", + "session": "chain_docs_svk_a", + "session_id": "asst-2026-04-02_Address_Followup_Context_Chains_2026-04-02_19-15-Run5-chain_docs_svk_a", + "status_code": 200, + "ok": true, + "elapsed_ms": 7119, + "reply_type": "factual", + "trace_id": "address-VE2EUn_CLp", + "assistant_reply": "Собран drilldown документов, формирующих остаток по счету на указанную дату.\nДокументных строк отобрано: 2.\nСумма по отобранным движениям: 1530000.\n1. 2020-05-18T12:00:01Z | Реализация товаров и услуг 00000000002 от 18.05.2020 12:00:01 | 62.01 / 90.01.1 | 765000\n2. 2020-05-18T12:00:01Z | Реализация товаров и услуг 00000000002 от 18.05.2020 12:00:01 | 62.02 / 62.01 | 765000\nМожно уточнить выборку по контрагенту, договору или периоду.", + "assistant_reply_first_line": "Собран drilldown документов, формирующих остаток по счету на указанную дату.", + "expected_intent": "documents_forming_balance", + "actual_intent": "documents_forming_balance", + "intent_match": true, + "expected_mode": "address_query", + "actual_mode": "address_query", + "mode_match": true, + "expected_reply_type": null, + "reply_match": true, + "semantic_pass": true, + "route_pass": true, + "route_health": "ok_or_factual", + "strict_policy": "route", + "strict_pass": true, + "selected_recipe": "address_documents_forming_balance_v1", + "missing_required_filters": [], + "match_failure_stage": "none", + "match_failure_reason": null, + "rows_fetched": 2, + "rows_matched": 2, + "mcp_call_status": "matched_non_empty", + "limited_reason_category": null, + "llm_decomposition_applied": false, + "llm_decomposition_reason": "normalized_fragment_rejected_intent_conflict", + "fallback_rule_hit": null, + "debug_payload": { + "trace_id": "address-VE2EUn_CLp", + "prompt_version": "address_query_runtime_v1", + "schema_version": "address_query_runtime_v1", + "fallback_type": "none", + "route_summary": null, + "fragments": [], + "requirements_extracted": [], + "coverage_report": { + "requirements_total": 0, + "requirements_covered": 0, + "requirements_uncovered": [], + "requirements_partially_covered": [], + "clarification_needed_for": [], + "out_of_scope_requirements": [] + }, + "routes": [], + "retrieval_status": [], + "retrieval_results": [], + "answer_grounding_check": { + "status": "grounded", + "route_subject_match": true, + "missing_requirements": [], + "reasons": [ + "address_action_detected", + "address_entity_detected", + "drilldown_signal_detected", + "documents_forming_balance_signal_detected", + "as_of_date_from_followup_context", + "period_from_followup_context", + "address_followup_context_applied" + ], + "why_included_summary": [], + "selection_reason_summary": [] + }, + "dropped_intent_segments": [], + "detected_mode": "address_query", + "detected_mode_confidence": "high", + "query_shape": "DRILLDOWN_REQUEST", + "query_shape_confidence": "high", + "detected_intent": "documents_forming_balance", + "detected_intent_confidence": "high", + "extracted_filters": { + "sort": "period_desc", + "limit": 20, + "account": "62.01", + "as_of_date": "2020-05-31", + "period_from": "2020-05-01", + "period_to": "2020-05-31" + }, + "missing_required_filters": [], + "selected_recipe": "address_documents_forming_balance_v1", + "mcp_call_status_legacy": "matched_non_empty", + "account_scope_mode": "strict", + "account_scope_fallback_applied": false, + "anchor_type": "account", + "anchor_value_raw": "62.01", + "anchor_value_resolved": "62.01", + "resolver_confidence": "high", + "ambiguity_count": 0, + "match_failure_stage": "none", + "match_failure_reason": null, + "mcp_call_status": "matched_non_empty", + "rows_fetched": 2, + "raw_rows_received": 2, + "rows_after_account_scope": 2, + "rows_after_recipe_filter": 2, + "rows_materialized": 2, + "rows_matched": 2, + "raw_row_keys_sample": [ + "Период", + "Регистратор", + "СчетДт", + "СчетКт", + "Сумма", + "Period", + "Registrator", + "AccountDt", + "AccountKt", + "Amount" + ], + "materialization_drop_reason": "none", + "account_token_raw": "62.01", + "account_token_normalized": "62.1", + "account_scope_fields_checked": [ + "account_dt", + "account_kt", + "registrator", + "analytics" + ], + "account_scope_match_strategy": "account_code_regex_plus_alias_map_v1", + "account_scope_drop_reason": "rows_remaining_after_scope_filter", + "runtime_readiness": "LIVE_QUERYABLE_WITH_LIMITS", + "limited_reason_category": null, + "response_type": "FACTUAL_LIST", + "execution_lane": "address_query", + "llm_decomposition_applied": false, + "llm_decomposition_attempted": true, + "llm_provider_used": "local", + "llm_decomposition_trace_id": "wqOIw28ybuBx9b", + "llm_decomposition_effective_message": "раскрой остаток по 62.01 документами на ту же дату", + "llm_decomposition_reason": "normalized_fragment_rejected_intent_conflict", + "fallback_rule_hit": null, + "sanitized_user_message": "раскрой остаток по 62.01 документами на ту же дату", + "tool_gate_decision": "run_address_lane", + "tool_gate_reason": "address_mode_classifier_detected", + "answer_structure_v11": null, + "investigation_state_snapshot": null, + "normalized": null, + "normalizer_output": { + "trace_id": "wqOIw28ybuBx9b", + "prompt_version": "normalizer_v2_0_2", + "applied": false, + "effective_message": "раскрой остаток по 62.01 документами на ту же дату" + } + }, + "error_code": null, + "error_message": null + }, + { + "index": 6, + "id": "F006", + "question": "Покажи банковские операции по СВК за 2020", + "session": "chain_bank_svk_b", + "session_id": "asst-2026-04-02_Address_Followup_Context_Chains_2026-04-02_19-15-Run5-chain_bank_svk_b", + "status_code": 200, + "ok": true, + "elapsed_ms": 8385, + "reply_type": "factual", + "trace_id": "address-zlWMmEXtd-", + "assistant_reply": "Точный якорь не подтвердился в текущем окне live-данных; показаны ближайшие доступные документы/операции по выбранному типу.\nСобран список банковских операций по контрагенту (live address lane).\nСтрок отобрано: 5.\n1. 2020-12-30T12:00:00Z | Поступление на расчетный счет 00000000044 от 30.12.2020 12:00:00 | 0 / 0 | 3248300 | аналитика: Группа\n2. 2020-12-16T16:20:53Z | Поступление на расчетный счет 00000000043 от 16.12.2020 16:20:53 | 0 / 0 | 216600 | аналитика: Группа\n3. 2020-12-16T16:20:52Z | Списание с расчетного счета 00000000294 от 16.12.2020 16:20:52 | 0 / 0 | 3849.26 | аналитика: УФК по г. Москве (для ГУ - Отделения ПФР по г. Москве и МО)\n4. 2020-12-16T16:20:51Z | Списание с расчетного счета 00000000293 от 16.12.2020 16:20:51 | 0 / 0 | 60 | аналитика: СБЕРБАНК, ПАО\n5. 2020-12-14T12:00:00Z | Поступление на расчетный счет 00000000042 от 14.12.2020 12:00:00 | 0 / 0 | 200000 | аналитика: Группа", + "assistant_reply_first_line": "Точный якорь не подтвердился в текущем окне live-данных; показаны ближайшие доступные документы/операции по выбранному типу.", + "expected_intent": "bank_operations_by_counterparty", + "actual_intent": "bank_operations_by_counterparty", + "intent_match": true, + "expected_mode": "address_query", + "actual_mode": "address_query", + "mode_match": true, + "expected_reply_type": null, + "reply_match": true, + "semantic_pass": true, + "route_pass": true, + "route_health": "ok_or_factual", + "strict_policy": "route", + "strict_pass": true, + "selected_recipe": "address_bank_operations_by_counterparty_v1", + "missing_required_filters": [], + "match_failure_stage": "materialized_but_not_anchor_matched", + "match_failure_reason": "counterparty_anchor_not_matched_in_materialized_rows", + "rows_fetched": 20, + "rows_matched": 5, + "mcp_call_status": "matched_non_empty", + "limited_reason_category": null, + "llm_decomposition_applied": true, + "llm_decomposition_reason": "normalized_fragment_applied", + "fallback_rule_hit": null, + "debug_payload": { + "trace_id": "address-zlWMmEXtd-", + "prompt_version": "address_query_runtime_v1", + "schema_version": "address_query_runtime_v1", + "fallback_type": "none", + "route_summary": null, + "fragments": [], + "requirements_extracted": [], + "coverage_report": { + "requirements_total": 0, + "requirements_covered": 0, + "requirements_uncovered": [], + "requirements_partially_covered": [], + "clarification_needed_for": [], + "out_of_scope_requirements": [] + }, + "routes": [], + "retrieval_status": [], + "retrieval_results": [], + "answer_grounding_check": { + "status": "grounded", + "route_subject_match": true, + "missing_requirements": [], + "reasons": [ + "address_action_detected", + "address_entity_detected", + "shape_not_detected", + "bank_ops_by_counterparty_signal_detected", + "anchor_not_matched_fallback_rows" + ], + "why_included_summary": [], + "selection_reason_summary": [] + }, + "dropped_intent_segments": [], + "detected_mode": "address_query", + "detected_mode_confidence": "high", + "query_shape": "UNKNOWN", + "query_shape_confidence": "low", + "detected_intent": "bank_operations_by_counterparty", + "detected_intent_confidence": "medium", + "extracted_filters": { + "sort": "period_desc", + "limit": 20, + "account": "51", + "counterparty": "счету", + "period_from": "2020-01-01", + "period_to": "2020-12-31" + }, + "missing_required_filters": [], + "selected_recipe": "address_bank_operations_by_counterparty_v1", + "mcp_call_status_legacy": "matched_non_empty", + "account_scope_mode": "preferred", + "account_scope_fallback_applied": false, + "anchor_type": "counterparty", + "anchor_value_raw": "счету", + "anchor_value_resolved": "счету", + "resolver_confidence": "medium", + "ambiguity_count": 0, + "match_failure_stage": "materialized_but_not_anchor_matched", + "match_failure_reason": "counterparty_anchor_not_matched_in_materialized_rows", + "mcp_call_status": "matched_non_empty", + "rows_fetched": 20, + "raw_rows_received": 20, + "rows_after_account_scope": 5, + "rows_after_recipe_filter": 0, + "rows_materialized": 5, + "rows_matched": 5, + "raw_row_keys_sample": [ + "Период", + "Регистратор", + "СчетДт", + "СчетКт", + "Сумма", + "Контрагент", + "Period", + "Registrator", + "Amount" + ], + "materialization_drop_reason": "none", + "account_token_raw": "51", + "account_token_normalized": "51", + "account_scope_fields_checked": [ + "account_dt", + "account_kt", + "registrator", + "analytics" + ], + "account_scope_match_strategy": "account_code_regex_plus_alias_map_v1", + "account_scope_drop_reason": "not_applicable", + "runtime_readiness": "LIVE_QUERYABLE_WITH_LIMITS", + "limited_reason_category": null, + "response_type": "FACTUAL_LIST", + "execution_lane": "address_query", + "llm_decomposition_applied": true, + "llm_decomposition_attempted": true, + "llm_provider_used": "local", + "llm_decomposition_trace_id": "Kq_V3qdYYVGUsv", + "llm_decomposition_effective_message": "Показать банковские операции по счету 51 (СВК) за период 2020 год.", + "llm_decomposition_reason": "normalized_fragment_applied", + "fallback_rule_hit": null, + "sanitized_user_message": "покажи банковские операции по свк за 2020", + "tool_gate_decision": "run_address_lane", + "tool_gate_reason": "address_mode_classifier_detected", + "answer_structure_v11": null, + "investigation_state_snapshot": null, + "normalized": null, + "normalizer_output": { + "trace_id": "Kq_V3qdYYVGUsv", + "prompt_version": "normalizer_v2_0_2", + "applied": true, + "effective_message": "Показать банковские операции по счету 51 (СВК) за период 2020 год." + } + }, + "error_code": null, + "error_message": null + }, + { + "index": 7, + "id": "F007", + "question": "а теперь только ноябрь 2020", + "session": "chain_bank_svk_b", + "session_id": "asst-2026-04-02_Address_Followup_Context_Chains_2026-04-02_19-15-Run5-chain_bank_svk_b", + "status_code": 200, + "ok": true, + "elapsed_ms": 3021, + "reply_type": "factual", + "trace_id": "address-WGuhAuih5s", + "assistant_reply": "Точный якорь не подтвердился в текущем окне live-данных; показаны ближайшие доступные документы/операции по выбранному типу.\nСобран список банковских операций по контрагенту (live address lane).\nСтрок отобрано: 5.\n1. 2020-11-30T12:00:07Z | Поступление на расчетный счет 00000000041 от 30.11.2020 12:00:07 | 0 / 0 | 38900 | аналитика: Группа\n3. 2020-11-19T12:00:04Z | Поступление на расчетный счет 00000000039 от 19.11.2020 12:00:04 | 0 / 0 | 3320600 | аналитика: Группа\n4. 2020-11-18T12:00:05Z | Поступление на расчетный счет 00000000038 от 18.11.2020 12:00:05 | 0 / 0 | 745300 | аналитика: Группа\n5. 2020-11-18T12:00:04Z | Поступление на расчетный счет 00000000037 от 18.11.2020 12:00:04 | 0 / 0 | 320000 | аналитика: Группа", + "assistant_reply_first_line": "Точный якорь не подтвердился в текущем окне live-данных; показаны ближайшие доступные документы/операции по выбранному типу.", + "expected_intent": "bank_operations_by_counterparty", + "actual_intent": "bank_operations_by_counterparty", + "intent_match": true, + "expected_mode": "address_query", + "actual_mode": "address_query", + "mode_match": true, + "expected_reply_type": null, + "reply_match": true, + "semantic_pass": true, + "route_pass": true, + "route_health": "ok_or_factual", + "strict_policy": "route", + "strict_pass": true, + "selected_recipe": "address_bank_operations_by_counterparty_v1", + "missing_required_filters": [], + "match_failure_stage": "materialized_but_not_anchor_matched", + "match_failure_reason": "counterparty_anchor_not_matched_in_materialized_rows", + "rows_fetched": 20, + "rows_matched": 5, + "mcp_call_status": "matched_non_empty", + "limited_reason_category": null, + "llm_decomposition_applied": false, + "llm_decomposition_reason": "not_address_like", + "fallback_rule_hit": null, + "debug_payload": { + "trace_id": "address-WGuhAuih5s", + "prompt_version": "address_query_runtime_v1", + "schema_version": "address_query_runtime_v1", + "fallback_type": "none", + "route_summary": null, + "fragments": [], + "requirements_extracted": [], + "coverage_report": { + "requirements_total": 0, + "requirements_covered": 0, + "requirements_uncovered": [], + "requirements_partially_covered": [], + "clarification_needed_for": [], + "out_of_scope_requirements": [] + }, + "routes": [], + "retrieval_status": [], + "retrieval_results": [], + "answer_grounding_check": { + "status": "grounded", + "route_subject_match": true, + "missing_requirements": [], + "reasons": [ + "no_address_or_deep_signal", + "address_mode_from_followup_context", + "shape_not_detected", + "intent_not_supported_in_v1", + "intent_from_followup_context", + "counterparty_from_followup_context", + "address_followup_context_applied", + "anchor_not_matched_fallback_rows" + ], + "why_included_summary": [], + "selection_reason_summary": [] + }, + "dropped_intent_segments": [], + "detected_mode": "address_query", + "detected_mode_confidence": "medium", + "query_shape": "UNKNOWN", + "query_shape_confidence": "low", + "detected_intent": "bank_operations_by_counterparty", + "detected_intent_confidence": "low", + "extracted_filters": { + "sort": "period_desc", + "limit": 20, + "period_from": "2020-11-01", + "period_to": "2020-11-30", + "counterparty": "счету" + }, + "missing_required_filters": [], + "selected_recipe": "address_bank_operations_by_counterparty_v1", + "mcp_call_status_legacy": "matched_non_empty", + "account_scope_mode": "preferred", + "account_scope_fallback_applied": false, + "anchor_type": "counterparty", + "anchor_value_raw": "счету", + "anchor_value_resolved": "счету", + "resolver_confidence": "medium", + "ambiguity_count": 0, + "match_failure_stage": "materialized_but_not_anchor_matched", + "match_failure_reason": "counterparty_anchor_not_matched_in_materialized_rows", + "mcp_call_status": "matched_non_empty", + "rows_fetched": 20, + "raw_rows_received": 20, + "rows_after_account_scope": 5, + "rows_after_recipe_filter": 0, + "rows_materialized": 5, + "rows_matched": 5, + "raw_row_keys_sample": [ + "Период", + "Регистратор", + "СчетДт", + "СчетКт", + "Сумма", + "Контрагент", + "Period", + "Registrator", + "Amount" + ], + "materialization_drop_reason": "none", + "account_token_raw": null, + "account_token_normalized": null, + "account_scope_fields_checked": [ + "account_dt", + "account_kt", + "registrator", + "analytics" + ], + "account_scope_match_strategy": "account_code_regex_plus_alias_map_v1", + "account_scope_drop_reason": "not_applicable", + "runtime_readiness": "LIVE_QUERYABLE_WITH_LIMITS", + "limited_reason_category": null, + "response_type": "FACTUAL_LIST", + "execution_lane": "address_query", + "llm_decomposition_applied": false, + "llm_decomposition_attempted": false, + "llm_provider_used": "local", + "llm_decomposition_trace_id": null, + "llm_decomposition_effective_message": "а теперь только ноябрь 2020", + "llm_decomposition_reason": "not_address_like", + "fallback_rule_hit": null, + "sanitized_user_message": "а теперь только ноябрь 2020", + "tool_gate_decision": "run_address_lane", + "tool_gate_reason": "followup_context_detected", + "answer_structure_v11": null, + "investigation_state_snapshot": null, + "normalized": null, + "normalizer_output": null + }, + "error_code": null, + "error_message": null + }, + { + "index": 8, + "id": "F008", + "question": "а теперь документы по нему", + "session": "chain_bank_svk_b", + "session_id": "asst-2026-04-02_Address_Followup_Context_Chains_2026-04-02_19-15-Run5-chain_bank_svk_b", + "status_code": 200, + "ok": true, + "elapsed_ms": 8225, + "reply_type": "factual", + "trace_id": "address-oYzsDFeBAL", + "assistant_reply": "Точный якорь не подтвердился в текущем окне live-данных; показаны ближайшие доступные документы/операции по выбранному типу.\nСобран список документов по контрагенту (live address lane).\nСтрок отобрано: 5.\n1. 2020-11-30T12:00:07Z | Поступление на расчетный счет 00000000041 от 30.11.2020 12:00:07 | 0 / 0 | 38900 | аналитика: Группа\n3. 2020-11-19T12:00:04Z | Поступление на расчетный счет 00000000039 от 19.11.2020 12:00:04 | 0 / 0 | 3320600 | аналитика: Группа\n4. 2020-11-18T12:00:05Z | Поступление на расчетный счет 00000000038 от 18.11.2020 12:00:05 | 0 / 0 | 745300 | аналитика: Группа\n5. 2020-11-18T12:00:04Z | Поступление на расчетный счет 00000000037 от 18.11.2020 12:00:04 | 0 / 0 | 320000 | аналитика: Группа", + "assistant_reply_first_line": "Точный якорь не подтвердился в текущем окне live-данных; показаны ближайшие доступные документы/операции по выбранному типу.", + "expected_intent": "list_documents_by_counterparty", + "actual_intent": "list_documents_by_counterparty", + "intent_match": true, + "expected_mode": "address_query", + "actual_mode": "address_query", + "mode_match": true, + "expected_reply_type": null, + "reply_match": true, + "semantic_pass": true, + "route_pass": true, + "route_health": "ok_or_factual", + "strict_policy": "route", + "strict_pass": true, + "selected_recipe": "address_documents_by_counterparty_v1", + "missing_required_filters": [], + "match_failure_stage": "materialized_but_not_anchor_matched", + "match_failure_reason": "counterparty_anchor_not_matched_in_materialized_rows", + "rows_fetched": 20, + "rows_matched": 5, + "mcp_call_status": "matched_non_empty", + "limited_reason_category": null, + "llm_decomposition_applied": true, + "llm_decomposition_reason": "normalized_fragment_applied", + "fallback_rule_hit": null, + "debug_payload": { + "trace_id": "address-oYzsDFeBAL", + "prompt_version": "address_query_runtime_v1", + "schema_version": "address_query_runtime_v1", + "fallback_type": "none", + "route_summary": null, + "fragments": [], + "requirements_extracted": [], + "coverage_report": { + "requirements_total": 0, + "requirements_covered": 0, + "requirements_uncovered": [], + "requirements_partially_covered": [], + "clarification_needed_for": [], + "out_of_scope_requirements": [] + }, + "routes": [], + "retrieval_status": [], + "retrieval_results": [], + "answer_grounding_check": { + "status": "grounded", + "route_subject_match": true, + "missing_requirements": [], + "reasons": [ + "loose_by_anchor_detected", + "document_list_signal_detected", + "documents_by_counterparty_signal_detected", + "period_from_followup_context", + "address_followup_context_applied", + "anchor_not_matched_fallback_rows" + ], + "why_included_summary": [], + "selection_reason_summary": [] + }, + "dropped_intent_segments": [], + "detected_mode": "address_query", + "detected_mode_confidence": "medium", + "query_shape": "DOCUMENT_LIST", + "query_shape_confidence": "medium", + "detected_intent": "list_documents_by_counterparty", + "detected_intent_confidence": "medium", + "extracted_filters": { + "sort": "period_desc", + "limit": 20, + "counterparty": "неуказанному", + "period_from": "2020-11-01", + "period_to": "2020-11-30" + }, + "missing_required_filters": [], + "selected_recipe": "address_documents_by_counterparty_v1", + "mcp_call_status_legacy": "matched_non_empty", + "account_scope_mode": "preferred", + "account_scope_fallback_applied": false, + "anchor_type": "counterparty", + "anchor_value_raw": "неуказанному", + "anchor_value_resolved": "неуказанному", + "resolver_confidence": "medium", + "ambiguity_count": 0, + "match_failure_stage": "materialized_but_not_anchor_matched", + "match_failure_reason": "counterparty_anchor_not_matched_in_materialized_rows", + "mcp_call_status": "matched_non_empty", + "rows_fetched": 20, + "raw_rows_received": 20, + "rows_after_account_scope": 5, + "rows_after_recipe_filter": 0, + "rows_materialized": 5, + "rows_matched": 5, + "raw_row_keys_sample": [ + "Период", + "Регистратор", + "СчетДт", + "СчетКт", + "Сумма", + "Контрагент", + "Period", + "Registrator", + "Amount" + ], + "materialization_drop_reason": "none", + "account_token_raw": null, + "account_token_normalized": null, + "account_scope_fields_checked": [ + "account_dt", + "account_kt", + "registrator", + "analytics" + ], + "account_scope_match_strategy": "account_code_regex_plus_alias_map_v1", + "account_scope_drop_reason": "not_applicable", + "runtime_readiness": "LIVE_QUERYABLE_WITH_LIMITS", + "limited_reason_category": null, + "response_type": "FACTUAL_LIST", + "execution_lane": "address_query", + "llm_decomposition_applied": true, + "llm_decomposition_attempted": true, + "llm_provider_used": "local", + "llm_decomposition_trace_id": "8srN6P1iqG9I7H", + "llm_decomposition_effective_message": "документы по неуказанному объекту", + "llm_decomposition_reason": "normalized_fragment_applied", + "fallback_rule_hit": null, + "sanitized_user_message": "а теперь документы по нему", + "tool_gate_decision": "run_address_lane", + "tool_gate_reason": "address_mode_classifier_detected", + "answer_structure_v11": null, + "investigation_state_snapshot": null, + "normalized": null, + "normalizer_output": { + "trace_id": "8srN6P1iqG9I7H", + "prompt_version": "normalizer_v2_0_2", + "applied": true, + "effective_message": "документы по неуказанному объекту" + } + }, + "error_code": null, + "error_message": null + }, + { + "index": 9, + "id": "F009", + "question": "и остаток по 51 на ту же дату", + "session": "chain_bank_svk_b", + "session_id": "asst-2026-04-02_Address_Followup_Context_Chains_2026-04-02_19-15-Run5-chain_bank_svk_b", + "status_code": 200, + "ok": true, + "elapsed_ms": 5780, + "reply_type": "factual", + "trace_id": "address-WBMj7Duag0", + "assistant_reply": "Адресный срез по счету собран (по движениям live MCP).\nСтрок отобрано: 200.\nСумма по отобранным движениям: 28075894.400000002.\n1. 2022-10-03T12:00:00Z | Списание с расчетного счета 00000000018 от 03.10.2022 12:00:00 | 76.03 / 51 | 355.2\n2. 2022-08-10T12:00:00Z | Списание с расчетного счета 00000000017 от 10.08.2022 12:00:00 | 91.02 / 51 | 990\n3. 2022-07-28T12:00:00Z | Списание с расчетного счета 00000000016 от 28.07.2022 12:00:00 | 69.11 / 51 | 1000\n4. 2022-07-11T12:00:00Z | Списание с расчетного счета 00000000014 от 11.07.2022 12:00:00 | 76.05 / 51 | 280", + "assistant_reply_first_line": "Адресный срез по счету собран (по движениям live MCP).", + "expected_intent": "account_balance_snapshot", + "actual_intent": "account_balance_snapshot", + "intent_match": true, + "expected_mode": "address_query", + "actual_mode": "address_query", + "mode_match": true, + "expected_reply_type": null, + "reply_match": true, + "semantic_pass": true, + "route_pass": true, + "route_health": "ok_or_factual", + "strict_policy": "route", + "strict_pass": true, + "selected_recipe": "address_movements_account_snapshot_v1", + "missing_required_filters": [], + "match_failure_stage": "none", + "match_failure_reason": null, + "rows_fetched": 200, + "rows_matched": 200, + "mcp_call_status": "matched_non_empty", + "limited_reason_category": null, + "llm_decomposition_applied": true, + "llm_decomposition_reason": "normalized_fragment_applied", + "fallback_rule_hit": null, + "debug_payload": { + "trace_id": "address-WBMj7Duag0", + "prompt_version": "address_query_runtime_v1", + "schema_version": "address_query_runtime_v1", + "fallback_type": "none", + "route_summary": null, + "fragments": [], + "requirements_extracted": [], + "coverage_report": { + "requirements_total": 0, + "requirements_covered": 0, + "requirements_uncovered": [], + "requirements_partially_covered": [], + "clarification_needed_for": [], + "out_of_scope_requirements": [] + }, + "routes": [], + "retrieval_status": [], + "retrieval_results": [], + "answer_grounding_check": { + "status": "grounded", + "route_subject_match": true, + "missing_requirements": [], + "reasons": [ + "address_action_detected", + "address_entity_detected", + "aggregate_signal_detected", + "account_balance_signal_detected" + ], + "why_included_summary": [], + "selection_reason_summary": [] + }, + "dropped_intent_segments": [], + "detected_mode": "address_query", + "detected_mode_confidence": "high", + "query_shape": "AGGREGATE_LOOKUP", + "query_shape_confidence": "high", + "detected_intent": "account_balance_snapshot", + "detected_intent_confidence": "high", + "extracted_filters": { + "sort": "period_desc", + "limit": 20, + "account": "51", + "as_of_date": "2026-04-02" + }, + "missing_required_filters": [], + "selected_recipe": "address_movements_account_snapshot_v1", + "mcp_call_status_legacy": "matched_non_empty", + "account_scope_mode": "strict", + "account_scope_fallback_applied": false, + "anchor_type": "account", + "anchor_value_raw": "51", + "anchor_value_resolved": "51", + "resolver_confidence": "high", + "ambiguity_count": 0, + "match_failure_stage": "none", + "match_failure_reason": null, + "mcp_call_status": "matched_non_empty", + "rows_fetched": 200, + "raw_rows_received": 200, + "rows_after_account_scope": 200, + "rows_after_recipe_filter": 200, + "rows_materialized": 200, + "rows_matched": 200, + "raw_row_keys_sample": [ + "Период", + "Регистратор", + "СчетДт", + "СчетКт", + "Сумма", + "Period", + "Registrator", + "AccountDt", + "AccountKt", + "Amount" + ], + "materialization_drop_reason": "none", + "account_token_raw": "51", + "account_token_normalized": "51", + "account_scope_fields_checked": [ + "account_dt", + "account_kt", + "registrator", + "analytics" + ], + "account_scope_match_strategy": "account_code_regex_plus_alias_map_v1", + "account_scope_drop_reason": "rows_remaining_after_scope_filter", + "runtime_readiness": "LIVE_QUERYABLE_WITH_LIMITS", + "limited_reason_category": null, + "response_type": "FACTUAL_SUMMARY", + "execution_lane": "address_query", + "llm_decomposition_applied": true, + "llm_decomposition_attempted": true, + "llm_provider_used": "local", + "llm_decomposition_trace_id": "Yv8GKZil5MSDLn", + "llm_decomposition_effective_message": "остаток по счету 51 на текущую дату", + "llm_decomposition_reason": "normalized_fragment_applied", + "fallback_rule_hit": null, + "sanitized_user_message": "и остаток по 51 на ту же дату", + "tool_gate_decision": "run_address_lane", + "tool_gate_reason": "address_mode_classifier_detected", + "answer_structure_v11": null, + "investigation_state_snapshot": null, + "normalized": null, + "normalizer_output": { + "trace_id": "Yv8GKZil5MSDLn", + "prompt_version": "normalizer_v2_0_2", + "applied": true, + "effective_message": "остаток по счету 51 на текущую дату" + } + }, + "error_code": null, + "error_message": null + }, + { + "index": 10, + "id": "F010", + "question": "а теперь только май 2020", + "session": "chain_bank_svk_b", + "session_id": "asst-2026-04-02_Address_Followup_Context_Chains_2026-04-02_19-15-Run5-chain_bank_svk_b", + "status_code": 200, + "ok": true, + "elapsed_ms": 997, + "reply_type": "factual", + "trace_id": "address-LU1P0q5pGM", + "assistant_reply": "Адресный срез по счету собран (по движениям live MCP).\nСтрок отобрано: 24.\nСумма по отобранным движениям: 2234531.1100000003.\n1. 2020-05-29T12:00:02Z | Списание с расчетного счета 00000000151 от 29.05.2020 12:00:02 | 91.02 / 51 | 60\n2. 2020-05-28T20:17:50Z | Списание с расчетного счета 00000000150 от 28.05.2020 20:17:50 | 70 / 51 | 50\n3. 2020-05-28T20:17:24Z | Списание с расчетного счета 00000000149 от 28.05.2020 20:17:24 | 91.02 / 51 | 35\n4. 2020-05-22T10:14:43Z | Списание с расчетного счета 00000000148 от 22.05.2020 10:14:43 | 60.02 / 51 | 142299", + "assistant_reply_first_line": "Адресный срез по счету собран (по движениям live MCP).", + "expected_intent": "account_balance_snapshot", + "actual_intent": "account_balance_snapshot", + "intent_match": true, + "expected_mode": "address_query", + "actual_mode": "address_query", + "mode_match": true, + "expected_reply_type": null, + "reply_match": true, + "semantic_pass": true, + "route_pass": true, + "route_health": "ok_or_factual", + "strict_policy": "route", + "strict_pass": true, + "selected_recipe": "address_movements_account_snapshot_v1", + "missing_required_filters": [], + "match_failure_stage": "none", + "match_failure_reason": null, + "rows_fetched": 24, + "rows_matched": 24, + "mcp_call_status": "matched_non_empty", + "limited_reason_category": null, + "llm_decomposition_applied": false, + "llm_decomposition_reason": "not_address_like", + "fallback_rule_hit": null, + "debug_payload": { + "trace_id": "address-LU1P0q5pGM", + "prompt_version": "address_query_runtime_v1", + "schema_version": "address_query_runtime_v1", + "fallback_type": "none", + "route_summary": null, + "fragments": [], + "requirements_extracted": [], + "coverage_report": { + "requirements_total": 0, + "requirements_covered": 0, + "requirements_uncovered": [], + "requirements_partially_covered": [], + "clarification_needed_for": [], + "out_of_scope_requirements": [] + }, + "routes": [], + "retrieval_status": [], + "retrieval_results": [], + "answer_grounding_check": { + "status": "grounded", + "route_subject_match": true, + "missing_requirements": [], + "reasons": [ + "no_address_or_deep_signal", + "address_mode_from_followup_context", + "shape_not_detected", + "intent_not_supported_in_v1", + "intent_from_followup_context", + "account_from_followup_context", + "address_followup_context_applied" + ], + "why_included_summary": [], + "selection_reason_summary": [] + }, + "dropped_intent_segments": [], + "detected_mode": "address_query", + "detected_mode_confidence": "medium", + "query_shape": "UNKNOWN", + "query_shape_confidence": "low", + "detected_intent": "account_balance_snapshot", + "detected_intent_confidence": "low", + "extracted_filters": { + "sort": "period_desc", + "limit": 20, + "period_from": "2020-05-01", + "period_to": "2020-05-31", + "as_of_date": "2020-05-31", + "account": "51" + }, + "missing_required_filters": [], + "selected_recipe": "address_movements_account_snapshot_v1", + "mcp_call_status_legacy": "matched_non_empty", + "account_scope_mode": "strict", + "account_scope_fallback_applied": false, + "anchor_type": "account", + "anchor_value_raw": "51", + "anchor_value_resolved": "51", + "resolver_confidence": "high", + "ambiguity_count": 0, + "match_failure_stage": "none", + "match_failure_reason": null, + "mcp_call_status": "matched_non_empty", + "rows_fetched": 24, + "raw_rows_received": 24, + "rows_after_account_scope": 24, + "rows_after_recipe_filter": 24, + "rows_materialized": 24, + "rows_matched": 24, + "raw_row_keys_sample": [ + "Период", + "Регистратор", + "СчетДт", + "СчетКт", + "Сумма", + "Period", + "Registrator", + "AccountDt", + "AccountKt", + "Amount" + ], + "materialization_drop_reason": "none", + "account_token_raw": "51", + "account_token_normalized": "51", + "account_scope_fields_checked": [ + "account_dt", + "account_kt", + "registrator", + "analytics" + ], + "account_scope_match_strategy": "account_code_regex_plus_alias_map_v1", + "account_scope_drop_reason": "rows_remaining_after_scope_filter", + "runtime_readiness": "LIVE_QUERYABLE_WITH_LIMITS", + "limited_reason_category": null, + "response_type": "FACTUAL_SUMMARY", + "execution_lane": "address_query", + "llm_decomposition_applied": false, + "llm_decomposition_attempted": false, + "llm_provider_used": "local", + "llm_decomposition_trace_id": null, + "llm_decomposition_effective_message": "а теперь только май 2020", + "llm_decomposition_reason": "not_address_like", + "fallback_rule_hit": null, + "sanitized_user_message": "а теперь только май 2020", + "tool_gate_decision": "run_address_lane", + "tool_gate_reason": "followup_context_detected", + "answer_structure_v11": null, + "investigation_state_snapshot": null, + "normalized": null, + "normalizer_output": null + }, + "error_code": null, + "error_message": null + }, + { + "index": 11, + "id": "F011", + "question": "Покажи сальдо по счету 60 на 2020-12-31", + "session": "chain_balance_c", + "session_id": "asst-2026-04-02_Address_Followup_Context_Chains_2026-04-02_19-15-Run5-chain_balance_c", + "status_code": 200, + "ok": true, + "elapsed_ms": 6078, + "reply_type": "partial_coverage", + "trace_id": "address-CuBOscGMc0", + "assistant_reply": "В live-данных по текущему фильтру записи не найдены.\nПричина: по выбранным фильтрам в live-выборке нет строк.\nЧто нужно уточнить: уточните период, контрагента, договор или снимите часть фильтров.", + "assistant_reply_first_line": "В live-данных по текущему фильтру записи не найдены.", + "expected_intent": "account_balance_snapshot", + "actual_intent": "account_balance_snapshot", + "intent_match": true, + "expected_mode": "address_query", + "actual_mode": "address_query", + "mode_match": true, + "expected_reply_type": null, + "reply_match": true, + "semantic_pass": true, + "route_pass": true, + "route_health": "partial_non_blocking", + "strict_policy": "route", + "strict_pass": true, + "selected_recipe": "address_movements_account_snapshot_v1", + "missing_required_filters": [], + "match_failure_stage": "none", + "match_failure_reason": null, + "rows_fetched": 0, + "rows_matched": 0, + "mcp_call_status": "no_raw_rows", + "limited_reason_category": "empty_match", + "llm_decomposition_applied": true, + "llm_decomposition_reason": "normalized_fragment_applied", + "fallback_rule_hit": null, + "debug_payload": { + "trace_id": "address-CuBOscGMc0", + "prompt_version": "address_query_runtime_v1", + "schema_version": "address_query_runtime_v1", + "fallback_type": "partial", + "route_summary": null, + "fragments": [], + "requirements_extracted": [], + "coverage_report": { + "requirements_total": 0, + "requirements_covered": 0, + "requirements_uncovered": [], + "requirements_partially_covered": [], + "clarification_needed_for": [], + "out_of_scope_requirements": [] + }, + "routes": [], + "retrieval_status": [], + "retrieval_results": [], + "answer_grounding_check": { + "status": "partial", + "route_subject_match": true, + "missing_requirements": [], + "reasons": [ + "address_action_detected", + "address_entity_detected", + "aggregate_signal_detected", + "account_balance_signal_detected" + ], + "why_included_summary": [], + "selection_reason_summary": [] + }, + "dropped_intent_segments": [], + "detected_mode": "address_query", + "detected_mode_confidence": "high", + "query_shape": "AGGREGATE_LOOKUP", + "query_shape_confidence": "high", + "detected_intent": "account_balance_snapshot", + "detected_intent_confidence": "high", + "extracted_filters": { + "sort": "period_desc", + "limit": 20, + "account": "60", + "period_from": "2020-12-01", + "period_to": "2020-12-31", + "as_of_date": "2020-12-31" + }, + "missing_required_filters": [], + "selected_recipe": "address_movements_account_snapshot_v1", + "mcp_call_status_legacy": "no_raw_rows", + "account_scope_mode": "strict", + "account_scope_fallback_applied": false, + "anchor_type": "account", + "anchor_value_raw": "60", + "anchor_value_resolved": "60", + "resolver_confidence": "high", + "ambiguity_count": 0, + "match_failure_stage": "none", + "match_failure_reason": null, + "mcp_call_status": "no_raw_rows", + "rows_fetched": 0, + "raw_rows_received": 0, + "rows_after_account_scope": 0, + "rows_after_recipe_filter": 0, + "rows_materialized": 0, + "rows_matched": 0, + "raw_row_keys_sample": [], + "materialization_drop_reason": "none", + "account_token_raw": "60", + "account_token_normalized": "60", + "account_scope_fields_checked": [ + "account_dt", + "account_kt", + "registrator", + "analytics" + ], + "account_scope_match_strategy": "account_code_regex_plus_alias_map_v1", + "account_scope_drop_reason": "rows_remaining_after_scope_filter", + "runtime_readiness": "LIVE_QUERYABLE_WITH_LIMITS", + "limited_reason_category": "empty_match", + "response_type": "LIMITED_WITH_REASON", + "execution_lane": "address_query", + "llm_decomposition_applied": true, + "llm_decomposition_attempted": true, + "llm_provider_used": "local", + "llm_decomposition_trace_id": "or7t-wNNYyq9Ww", + "llm_decomposition_effective_message": "Показать остаток по счету 60 на конец декабря 2020 года", + "llm_decomposition_reason": "normalized_fragment_applied", + "fallback_rule_hit": null, + "sanitized_user_message": "покажи сальдо по счету 60 на 2020-12-31", + "tool_gate_decision": "run_address_lane", + "tool_gate_reason": "address_mode_classifier_detected", + "answer_structure_v11": null, + "investigation_state_snapshot": null, + "normalized": null, + "normalizer_output": { + "trace_id": "or7t-wNNYyq9Ww", + "prompt_version": "normalizer_v2_0_2", + "applied": true, + "effective_message": "Показать остаток по счету 60 на конец декабря 2020 года" + } + }, + "error_code": null, + "error_message": null + }, + { + "index": 12, + "id": "F012", + "question": "а теперь только май 2020", + "session": "chain_balance_c", + "session_id": "asst-2026-04-02_Address_Followup_Context_Chains_2026-04-02_19-15-Run5-chain_balance_c", + "status_code": 200, + "ok": true, + "elapsed_ms": 1004, + "reply_type": "factual", + "trace_id": "address-2TEQq54Ad_", + "assistant_reply": "Адресный срез по счету собран (по движениям live MCP).\nСтрок отобрано: 6.\nСумма по отобранным движениям: 849499.\n1. 2020-05-22T10:14:43Z | Списание с расчетного счета 00000000148 от 22.05.2020 10:14:43 | 60.02 / 51 | 142299\n2. 2020-05-22T10:12:50Z | Списание с расчетного счета 00000000147 от 22.05.2020 10:12:50 | 60.01 / 51 | 75367\n3. 2020-05-22T10:12:50Z | Списание с расчетного счета 00000000147 от 22.05.2020 10:12:50 | 60.01 / 51 | 211833\n4. 2020-05-18T12:00:02Z | Списание с расчетного счета 00000000145 от 18.05.2020 12:00:02 | 60.01 / 51 | 187967", + "assistant_reply_first_line": "Адресный срез по счету собран (по движениям live MCP).", + "expected_intent": "account_balance_snapshot", + "actual_intent": "account_balance_snapshot", + "intent_match": true, + "expected_mode": "address_query", + "actual_mode": "address_query", + "mode_match": true, + "expected_reply_type": null, + "reply_match": true, + "semantic_pass": true, + "route_pass": true, + "route_health": "ok_or_factual", + "strict_policy": "route", + "strict_pass": true, + "selected_recipe": "address_movements_account_snapshot_v1", + "missing_required_filters": [], + "match_failure_stage": "none", + "match_failure_reason": null, + "rows_fetched": 6, + "rows_matched": 6, + "mcp_call_status": "matched_non_empty", + "limited_reason_category": null, + "llm_decomposition_applied": false, + "llm_decomposition_reason": "not_address_like", + "fallback_rule_hit": null, + "debug_payload": { + "trace_id": "address-2TEQq54Ad_", + "prompt_version": "address_query_runtime_v1", + "schema_version": "address_query_runtime_v1", + "fallback_type": "none", + "route_summary": null, + "fragments": [], + "requirements_extracted": [], + "coverage_report": { + "requirements_total": 0, + "requirements_covered": 0, + "requirements_uncovered": [], + "requirements_partially_covered": [], + "clarification_needed_for": [], + "out_of_scope_requirements": [] + }, + "routes": [], + "retrieval_status": [], + "retrieval_results": [], + "answer_grounding_check": { + "status": "grounded", + "route_subject_match": true, + "missing_requirements": [], + "reasons": [ + "no_address_or_deep_signal", + "address_mode_from_followup_context", + "shape_not_detected", + "intent_not_supported_in_v1", + "intent_from_followup_context", + "account_from_followup_context", + "address_followup_context_applied" + ], + "why_included_summary": [], + "selection_reason_summary": [] + }, + "dropped_intent_segments": [], + "detected_mode": "address_query", + "detected_mode_confidence": "medium", + "query_shape": "UNKNOWN", + "query_shape_confidence": "low", + "detected_intent": "account_balance_snapshot", + "detected_intent_confidence": "low", + "extracted_filters": { + "sort": "period_desc", + "limit": 20, + "period_from": "2020-05-01", + "period_to": "2020-05-31", + "as_of_date": "2020-05-31", + "account": "60" + }, + "missing_required_filters": [], + "selected_recipe": "address_movements_account_snapshot_v1", + "mcp_call_status_legacy": "matched_non_empty", + "account_scope_mode": "strict", + "account_scope_fallback_applied": false, + "anchor_type": "account", + "anchor_value_raw": "60", + "anchor_value_resolved": "60", + "resolver_confidence": "high", + "ambiguity_count": 0, + "match_failure_stage": "none", + "match_failure_reason": null, + "mcp_call_status": "matched_non_empty", + "rows_fetched": 6, + "raw_rows_received": 6, + "rows_after_account_scope": 6, + "rows_after_recipe_filter": 6, + "rows_materialized": 6, + "rows_matched": 6, + "raw_row_keys_sample": [ + "Период", + "Регистратор", + "СчетДт", + "СчетКт", + "Сумма", + "Period", + "Registrator", + "AccountDt", + "AccountKt", + "Amount" + ], + "materialization_drop_reason": "none", + "account_token_raw": "60", + "account_token_normalized": "60", + "account_scope_fields_checked": [ + "account_dt", + "account_kt", + "registrator", + "analytics" + ], + "account_scope_match_strategy": "account_code_regex_plus_alias_map_v1", + "account_scope_drop_reason": "rows_remaining_after_scope_filter", + "runtime_readiness": "LIVE_QUERYABLE_WITH_LIMITS", + "limited_reason_category": null, + "response_type": "FACTUAL_SUMMARY", + "execution_lane": "address_query", + "llm_decomposition_applied": false, + "llm_decomposition_attempted": false, + "llm_provider_used": "local", + "llm_decomposition_trace_id": null, + "llm_decomposition_effective_message": "а теперь только май 2020", + "llm_decomposition_reason": "not_address_like", + "fallback_rule_hit": null, + "sanitized_user_message": "а теперь только май 2020", + "tool_gate_decision": "run_address_lane", + "tool_gate_reason": "followup_context_detected", + "answer_structure_v11": null, + "investigation_state_snapshot": null, + "normalized": null, + "normalizer_output": null + }, + "error_code": null, + "error_message": null + }, + { + "index": 13, + "id": "F013", + "question": "а на ту же дату по 62", + "session": "chain_balance_c", + "session_id": "asst-2026-04-02_Address_Followup_Context_Chains_2026-04-02_19-15-Run5-chain_balance_c", + "status_code": 200, + "ok": true, + "elapsed_ms": 1018, + "reply_type": "factual", + "trace_id": "address-fm_EDNXOjE", + "assistant_reply": "Адресный срез по счету собран (по движениям live MCP).\nСтрок отобрано: 4.\nСумма по отобранным движениям: 2545546.24.\n1. 2020-05-21T12:00:00Z | Поступление на расчетный счет 00000000023 от 21.05.2020 12:00:00 | 51 / 62.02 | 250546.24\n2. 2020-05-18T12:00:01Z | Реализация товаров и услуг 00000000002 от 18.05.2020 12:00:01 | 62.01 / 90.01.1 | 765000\n3. 2020-05-18T12:00:01Z | Реализация товаров и услуг 00000000002 от 18.05.2020 12:00:01 | 62.02 / 62.01 | 765000\n4. 2020-05-15T12:00:02Z | Поступление на расчетный счет 00000000022 от 15.05.2020 12:00:02 | 51 / 62.02 | 765000", + "assistant_reply_first_line": "Адресный срез по счету собран (по движениям live MCP).", + "expected_intent": "account_balance_snapshot", + "actual_intent": "account_balance_snapshot", + "intent_match": true, + "expected_mode": "address_query", + "actual_mode": "address_query", + "mode_match": true, + "expected_reply_type": null, + "reply_match": true, + "semantic_pass": true, + "route_pass": true, + "route_health": "ok_or_factual", + "strict_policy": "route", + "strict_pass": true, + "selected_recipe": "address_movements_account_snapshot_v1", + "missing_required_filters": [], + "match_failure_stage": "none", + "match_failure_reason": null, + "rows_fetched": 4, + "rows_matched": 4, + "mcp_call_status": "matched_non_empty", + "limited_reason_category": null, + "llm_decomposition_applied": false, + "llm_decomposition_reason": "not_address_like", + "fallback_rule_hit": null, + "debug_payload": { + "trace_id": "address-fm_EDNXOjE", + "prompt_version": "address_query_runtime_v1", + "schema_version": "address_query_runtime_v1", + "fallback_type": "none", + "route_summary": null, + "fragments": [], + "requirements_extracted": [], + "coverage_report": { + "requirements_total": 0, + "requirements_covered": 0, + "requirements_uncovered": [], + "requirements_partially_covered": [], + "clarification_needed_for": [], + "out_of_scope_requirements": [] + }, + "routes": [], + "retrieval_status": [], + "retrieval_results": [], + "answer_grounding_check": { + "status": "grounded", + "route_subject_match": true, + "missing_requirements": [], + "reasons": [ + "no_address_or_deep_signal", + "address_mode_from_followup_context", + "shape_not_detected", + "intent_not_supported_in_v1", + "intent_adjusted_to_balance_followup_context", + "as_of_date_from_followup_context", + "period_from_followup_context", + "address_followup_context_applied" + ], + "why_included_summary": [], + "selection_reason_summary": [] + }, + "dropped_intent_segments": [], + "detected_mode": "address_query", + "detected_mode_confidence": "medium", + "query_shape": "UNKNOWN", + "query_shape_confidence": "low", + "detected_intent": "account_balance_snapshot", + "detected_intent_confidence": "low", + "extracted_filters": { + "sort": "period_desc", + "limit": 20, + "account": "62", + "as_of_date": "2020-05-31", + "period_from": "2020-05-01", + "period_to": "2020-05-31" + }, + "missing_required_filters": [], + "selected_recipe": "address_movements_account_snapshot_v1", + "mcp_call_status_legacy": "matched_non_empty", + "account_scope_mode": "strict", + "account_scope_fallback_applied": false, + "anchor_type": "account", + "anchor_value_raw": "62", + "anchor_value_resolved": "62", + "resolver_confidence": "high", + "ambiguity_count": 0, + "match_failure_stage": "none", + "match_failure_reason": null, + "mcp_call_status": "matched_non_empty", + "rows_fetched": 4, + "raw_rows_received": 4, + "rows_after_account_scope": 4, + "rows_after_recipe_filter": 4, + "rows_materialized": 4, + "rows_matched": 4, + "raw_row_keys_sample": [ + "Период", + "Регистратор", + "СчетДт", + "СчетКт", + "Сумма", + "Period", + "Registrator", + "AccountDt", + "AccountKt", + "Amount" + ], + "materialization_drop_reason": "none", + "account_token_raw": "62", + "account_token_normalized": "62", + "account_scope_fields_checked": [ + "account_dt", + "account_kt", + "registrator", + "analytics" + ], + "account_scope_match_strategy": "account_code_regex_plus_alias_map_v1", + "account_scope_drop_reason": "rows_remaining_after_scope_filter", + "runtime_readiness": "LIVE_QUERYABLE_WITH_LIMITS", + "limited_reason_category": null, + "response_type": "FACTUAL_SUMMARY", + "execution_lane": "address_query", + "llm_decomposition_applied": false, + "llm_decomposition_attempted": false, + "llm_provider_used": "local", + "llm_decomposition_trace_id": null, + "llm_decomposition_effective_message": "а на ту же дату по 62", + "llm_decomposition_reason": "not_address_like", + "fallback_rule_hit": null, + "sanitized_user_message": "а на ту же дату по 62", + "tool_gate_decision": "run_address_lane", + "tool_gate_reason": "address_signal_detected", + "answer_structure_v11": null, + "investigation_state_snapshot": null, + "normalized": null, + "normalizer_output": null + }, + "error_code": null, + "error_message": null + }, + { + "index": 14, + "id": "F014", + "question": "раскрой 62 документами на ту же дату", + "session": "chain_balance_c", + "session_id": "asst-2026-04-02_Address_Followup_Context_Chains_2026-04-02_19-15-Run5-chain_balance_c", + "status_code": 200, + "ok": true, + "elapsed_ms": 6159, + "reply_type": "factual", + "trace_id": "address-Dv9Zs60M74", + "assistant_reply": "Собран drilldown документов, формирующих остаток по счету на указанную дату.\nДокументных строк отобрано: 4.\nСумма по отобранным движениям: 2545546.24.\n1. 2020-05-21T12:00:00Z | Поступление на расчетный счет 00000000023 от 21.05.2020 12:00:00 | 51 / 62.02 | 250546.24\n2. 2020-05-18T12:00:01Z | Реализация товаров и услуг 00000000002 от 18.05.2020 12:00:01 | 62.01 / 90.01.1 | 765000\n3. 2020-05-18T12:00:01Z | Реализация товаров и услуг 00000000002 от 18.05.2020 12:00:01 | 62.02 / 62.01 | 765000\n4. 2020-05-15T12:00:02Z | Поступление на расчетный счет 00000000022 от 15.05.2020 12:00:02 | 51 / 62.02 | 765000\nМожно уточнить выборку по контрагенту, договору или периоду.", + "assistant_reply_first_line": "Собран drilldown документов, формирующих остаток по счету на указанную дату.", + "expected_intent": "documents_forming_balance", + "actual_intent": "documents_forming_balance", + "intent_match": true, + "expected_mode": "address_query", + "actual_mode": "address_query", + "mode_match": true, + "expected_reply_type": null, + "reply_match": true, + "semantic_pass": true, + "route_pass": true, + "route_health": "ok_or_factual", + "strict_policy": "route", + "strict_pass": true, + "selected_recipe": "address_documents_forming_balance_v1", + "missing_required_filters": [], + "match_failure_stage": "none", + "match_failure_reason": null, + "rows_fetched": 4, + "rows_matched": 4, + "mcp_call_status": "matched_non_empty", + "limited_reason_category": null, + "llm_decomposition_applied": true, + "llm_decomposition_reason": "normalized_fragment_applied", + "fallback_rule_hit": null, + "debug_payload": { + "trace_id": "address-Dv9Zs60M74", + "prompt_version": "address_query_runtime_v1", + "schema_version": "address_query_runtime_v1", + "fallback_type": "none", + "route_summary": null, + "fragments": [], + "requirements_extracted": [], + "coverage_report": { + "requirements_total": 0, + "requirements_covered": 0, + "requirements_uncovered": [], + "requirements_partially_covered": [], + "clarification_needed_for": [], + "out_of_scope_requirements": [] + }, + "routes": [], + "retrieval_status": [], + "retrieval_results": [], + "answer_grounding_check": { + "status": "grounded", + "route_subject_match": true, + "missing_requirements": [], + "reasons": [ + "address_entity_detected", + "document_list_signal_detected", + "documents_by_counterparty_signal_detected", + "intent_adjusted_to_balance_followup_context", + "as_of_date_from_followup_context", + "period_from_followup_context", + "address_followup_context_applied" + ], + "why_included_summary": [], + "selection_reason_summary": [] + }, + "dropped_intent_segments": [], + "detected_mode": "address_query", + "detected_mode_confidence": "medium", + "query_shape": "DOCUMENT_LIST", + "query_shape_confidence": "medium", + "detected_intent": "documents_forming_balance", + "detected_intent_confidence": "low", + "extracted_filters": { + "sort": "period_desc", + "limit": 20, + "account": "62", + "as_of_date": "2020-05-31", + "period_from": "2020-05-01", + "period_to": "2020-05-31" + }, + "missing_required_filters": [], + "selected_recipe": "address_documents_forming_balance_v1", + "mcp_call_status_legacy": "matched_non_empty", + "account_scope_mode": "strict", + "account_scope_fallback_applied": false, + "anchor_type": "account", + "anchor_value_raw": "62", + "anchor_value_resolved": "62", + "resolver_confidence": "high", + "ambiguity_count": 0, + "match_failure_stage": "none", + "match_failure_reason": null, + "mcp_call_status": "matched_non_empty", + "rows_fetched": 4, + "raw_rows_received": 4, + "rows_after_account_scope": 4, + "rows_after_recipe_filter": 4, + "rows_materialized": 4, + "rows_matched": 4, + "raw_row_keys_sample": [ + "Период", + "Регистратор", + "СчетДт", + "СчетКт", + "Сумма", + "Period", + "Registrator", + "AccountDt", + "AccountKt", + "Amount" + ], + "materialization_drop_reason": "none", + "account_token_raw": "62", + "account_token_normalized": "62", + "account_scope_fields_checked": [ + "account_dt", + "account_kt", + "registrator", + "analytics" + ], + "account_scope_match_strategy": "account_code_regex_plus_alias_map_v1", + "account_scope_drop_reason": "rows_remaining_after_scope_filter", + "runtime_readiness": "LIVE_QUERYABLE_WITH_LIMITS", + "limited_reason_category": null, + "response_type": "FACTUAL_LIST", + "execution_lane": "address_query", + "llm_decomposition_applied": true, + "llm_decomposition_attempted": true, + "llm_provider_used": "local", + "llm_decomposition_trace_id": "ILC-PYxsPhnZso", + "llm_decomposition_effective_message": "Раскрыть счет 62 документами, указанными на ту же дату.", + "llm_decomposition_reason": "normalized_fragment_applied", + "fallback_rule_hit": null, + "sanitized_user_message": "раскрой 62 документами на ту же дату", + "tool_gate_decision": "run_address_lane", + "tool_gate_reason": "address_mode_classifier_detected", + "answer_structure_v11": null, + "investigation_state_snapshot": null, + "normalized": null, + "normalizer_output": { + "trace_id": "ILC-PYxsPhnZso", + "prompt_version": "normalizer_v2_0_2", + "applied": true, + "effective_message": "Раскрыть счет 62 документами, указанными на ту же дату." + } + }, + "error_code": null, + "error_message": null + }, + { + "index": 15, + "id": "F015", + "question": "вернись на 2020-12-31 по 60", + "session": "chain_balance_c", + "session_id": "asst-2026-04-02_Address_Followup_Context_Chains_2026-04-02_19-15-Run5-chain_balance_c", + "status_code": 200, + "ok": true, + "elapsed_ms": 968, + "reply_type": "partial_coverage", + "trace_id": "address-i4iXskOXwE", + "assistant_reply": "В live-данных по текущему фильтру записи не найдены.\nПричина: по выбранным фильтрам в live-выборке нет строк.\nЧто нужно уточнить: уточните период, контрагента, договор или снимите часть фильтров.", + "assistant_reply_first_line": "В live-данных по текущему фильтру записи не найдены.", + "expected_intent": "account_balance_snapshot", + "actual_intent": "account_balance_snapshot", + "intent_match": true, + "expected_mode": "address_query", + "actual_mode": "address_query", + "mode_match": true, + "expected_reply_type": null, + "reply_match": true, + "semantic_pass": true, + "route_pass": true, + "route_health": "partial_non_blocking", + "strict_policy": "route", + "strict_pass": true, + "selected_recipe": "address_movements_account_snapshot_v1", + "missing_required_filters": [], + "match_failure_stage": "none", + "match_failure_reason": null, + "rows_fetched": 0, + "rows_matched": 0, + "mcp_call_status": "no_raw_rows", + "limited_reason_category": "empty_match", + "llm_decomposition_applied": false, + "llm_decomposition_reason": "not_address_like", + "fallback_rule_hit": null, + "debug_payload": { + "trace_id": "address-i4iXskOXwE", + "prompt_version": "address_query_runtime_v1", + "schema_version": "address_query_runtime_v1", + "fallback_type": "partial", + "route_summary": null, + "fragments": [], + "requirements_extracted": [], + "coverage_report": { + "requirements_total": 0, + "requirements_covered": 0, + "requirements_uncovered": [], + "requirements_partially_covered": [], + "clarification_needed_for": [], + "out_of_scope_requirements": [] + }, + "routes": [], + "retrieval_status": [], + "retrieval_results": [], + "answer_grounding_check": { + "status": "partial", + "route_subject_match": true, + "missing_requirements": [], + "reasons": [ + "no_address_or_deep_signal", + "address_mode_from_followup_context", + "shape_not_detected", + "intent_not_supported_in_v1", + "intent_adjusted_to_balance_followup_context", + "address_followup_context_applied" + ], + "why_included_summary": [], + "selection_reason_summary": [] + }, + "dropped_intent_segments": [], + "detected_mode": "address_query", + "detected_mode_confidence": "medium", + "query_shape": "UNKNOWN", + "query_shape_confidence": "low", + "detected_intent": "account_balance_snapshot", + "detected_intent_confidence": "low", + "extracted_filters": { + "sort": "period_desc", + "limit": 20, + "account": "60", + "period_from": "2020-12-01", + "period_to": "2020-12-31", + "as_of_date": "2020-12-31" + }, + "missing_required_filters": [], + "selected_recipe": "address_movements_account_snapshot_v1", + "mcp_call_status_legacy": "no_raw_rows", + "account_scope_mode": "strict", + "account_scope_fallback_applied": false, + "anchor_type": "account", + "anchor_value_raw": "60", + "anchor_value_resolved": "60", + "resolver_confidence": "high", + "ambiguity_count": 0, + "match_failure_stage": "none", + "match_failure_reason": null, + "mcp_call_status": "no_raw_rows", + "rows_fetched": 0, + "raw_rows_received": 0, + "rows_after_account_scope": 0, + "rows_after_recipe_filter": 0, + "rows_materialized": 0, + "rows_matched": 0, + "raw_row_keys_sample": [], + "materialization_drop_reason": "none", + "account_token_raw": "60", + "account_token_normalized": "60", + "account_scope_fields_checked": [ + "account_dt", + "account_kt", + "registrator", + "analytics" + ], + "account_scope_match_strategy": "account_code_regex_plus_alias_map_v1", + "account_scope_drop_reason": "rows_remaining_after_scope_filter", + "runtime_readiness": "LIVE_QUERYABLE_WITH_LIMITS", + "limited_reason_category": "empty_match", + "response_type": "LIMITED_WITH_REASON", + "execution_lane": "address_query", + "llm_decomposition_applied": false, + "llm_decomposition_attempted": false, + "llm_provider_used": "local", + "llm_decomposition_trace_id": null, + "llm_decomposition_effective_message": "вернись на 2020-12-31 по 60", + "llm_decomposition_reason": "not_address_like", + "fallback_rule_hit": null, + "sanitized_user_message": "вернись на 2020-12-31 по 60", + "tool_gate_decision": "run_address_lane", + "tool_gate_reason": "address_signal_detected", + "answer_structure_v11": null, + "investigation_state_snapshot": null, + "normalized": null, + "normalizer_output": null + }, + "error_code": null, + "error_message": null + }, + { + "index": 16, + "id": "F016", + "question": "Покажи документы по договору 19/15 за 2020", + "session": "chain_contract_d", + "session_id": "asst-2026-04-02_Address_Followup_Context_Chains_2026-04-02_19-15-Run5-chain_contract_d", + "status_code": 200, + "ok": true, + "elapsed_ms": 7351, + "reply_type": "factual", + "trace_id": "address-dA7z-biAIt", + "assistant_reply": "Период сохранен. Глубина live-выборки автоматически расширена до 1000 строк.\nСобран список документов по договору (live address lane).\nСтрок отобрано: 8.\n1. 2020-08-31T15:00:06Z | Поступление товаров и услуг 00000000024 от 31.08.2020 15:00:06 | 19.04 / 76.05 | 233.33\n2. 2020-07-15T13:11:19Z | Реализация товаров и услуг 00000000008 от 15.07.2020 13:11:19 | 62.01 / 90.01.1 | 43804.8\n3. 2020-07-15T13:11:19Z | Реализация товаров и услуг 00000000008 от 15.07.2020 13:11:19 | 62.01 / 90.01.1 | 9776\n4. 2020-07-15T13:11:19Z | Реализация товаров и услуг 00000000008 от 15.07.2020 13:11:19 | 62.01 / 90.01.1 | 73968\n5. 2020-07-15T13:11:19Z | Реализация товаров и услуг 00000000008 от 15.07.2020 13:11:19 | 62.01 / 90.01.1 | 94924.8\n6. 2020-07-15T13:11:19Z | Реализация товаров и услуг 00000000008 от 15.07.2020 13:11:19 | 62.01 / 90.01.1 | 54400\n7. 2020-07-15T13:11:19Z | Реализация товаров и услуг 00000000008 от 15.07.2020 13:11:19 | 62.02 / 62.01 | 276873.6\n8. 2020-06-30T12:00:00Z | Поступление товаров и услуг 00000000015 от 30.06.2020 12:00:00 | 19.04 / 76.05 | 233.33", + "assistant_reply_first_line": "Период сохранен. Глубина live-выборки автоматически расширена до 1000 строк.", + "expected_intent": "list_documents_by_contract", + "actual_intent": "list_documents_by_contract", + "intent_match": true, + "expected_mode": "address_query", + "actual_mode": "address_query", + "mode_match": true, + "expected_reply_type": null, + "reply_match": true, + "semantic_pass": true, + "route_pass": true, + "route_health": "ok_or_factual", + "strict_policy": "route", + "strict_pass": true, + "selected_recipe": "address_documents_by_contract_v1", + "missing_required_filters": [], + "match_failure_stage": "none", + "match_failure_reason": null, + "rows_fetched": 1000, + "rows_matched": 8, + "mcp_call_status": "matched_non_empty", + "limited_reason_category": null, + "llm_decomposition_applied": true, + "llm_decomposition_reason": "normalized_fragment_applied", + "fallback_rule_hit": null, + "debug_payload": { + "trace_id": "address-dA7z-biAIt", + "prompt_version": "address_query_runtime_v1", + "schema_version": "address_query_runtime_v1", + "fallback_type": "none", + "route_summary": null, + "fragments": [], + "requirements_extracted": [], + "coverage_report": { + "requirements_total": 0, + "requirements_covered": 0, + "requirements_uncovered": [], + "requirements_partially_covered": [], + "clarification_needed_for": [], + "out_of_scope_requirements": [] + }, + "routes": [], + "retrieval_status": [], + "retrieval_results": [], + "answer_grounding_check": { + "status": "grounded", + "route_subject_match": true, + "missing_requirements": [], + "reasons": [ + "address_action_detected", + "address_entity_detected", + "document_list_signal_detected", + "documents_by_contract_signal_detected", + "query_limit_auto_expanded_for_anchor_recovery" + ], + "why_included_summary": [], + "selection_reason_summary": [] + }, + "dropped_intent_segments": [], + "detected_mode": "address_query", + "detected_mode_confidence": "high", + "query_shape": "DOCUMENT_LIST", + "query_shape_confidence": "medium", + "detected_intent": "list_documents_by_contract", + "detected_intent_confidence": "medium", + "extracted_filters": { + "sort": "period_desc", + "limit": 20, + "contract": "19/15", + "period_from": "2020-01-01", + "period_to": "2020-12-31" + }, + "missing_required_filters": [], + "selected_recipe": "address_documents_by_contract_v1", + "mcp_call_status_legacy": "matched_non_empty", + "account_scope_mode": "preferred", + "account_scope_fallback_applied": false, + "anchor_type": "contract", + "anchor_value_raw": "19/15", + "anchor_value_resolved": "19/15", + "resolver_confidence": "medium", + "ambiguity_count": 0, + "match_failure_stage": "none", + "match_failure_reason": null, + "mcp_call_status": "matched_non_empty", + "rows_fetched": 1000, + "raw_rows_received": 1000, + "rows_after_account_scope": 438, + "rows_after_recipe_filter": 11, + "rows_materialized": 438, + "rows_matched": 8, + "raw_row_keys_sample": [ + "Период", + "Регистратор", + "СчетДт", + "СчетКт", + "Сумма", + "Period", + "Registrator", + "AccountDt", + "AccountKt", + "Amount" + ], + "materialization_drop_reason": "none", + "account_token_raw": null, + "account_token_normalized": null, + "account_scope_fields_checked": [ + "account_dt", + "account_kt", + "registrator", + "analytics" + ], + "account_scope_match_strategy": "account_code_regex_plus_alias_map_v1", + "account_scope_drop_reason": "not_applicable", + "runtime_readiness": "LIVE_QUERYABLE_WITH_LIMITS", + "limited_reason_category": null, + "response_type": "FACTUAL_LIST", + "execution_lane": "address_query", + "llm_decomposition_applied": true, + "llm_decomposition_attempted": true, + "llm_provider_used": "local", + "llm_decomposition_trace_id": "GjOWlDM2iIkyCE", + "llm_decomposition_effective_message": "Показать документы по договору 19/15 за период 2020 года.", + "llm_decomposition_reason": "normalized_fragment_applied", + "fallback_rule_hit": null, + "sanitized_user_message": "покажи документы по договору 19/15 за 2020", + "tool_gate_decision": "run_address_lane", + "tool_gate_reason": "address_mode_classifier_detected", + "answer_structure_v11": null, + "investigation_state_snapshot": null, + "normalized": null, + "normalizer_output": { + "trace_id": "GjOWlDM2iIkyCE", + "prompt_version": "normalizer_v2_0_2", + "applied": true, + "effective_message": "Показать документы по договору 19/15 за период 2020 года." + } + }, + "error_code": null, + "error_message": null + }, + { + "index": 17, + "id": "F017", + "question": "а теперь банковские операции", + "session": "chain_contract_d", + "session_id": "asst-2026-04-02_Address_Followup_Context_Chains_2026-04-02_19-15-Run5-chain_contract_d", + "status_code": 200, + "ok": true, + "elapsed_ms": 8189, + "reply_type": "factual", + "trace_id": "address-SnUOcQaokp", + "assistant_reply": "Период сохранен. Глубина live-выборки автоматически расширена до 1000 строк.\nСобран список банковских операций по договору (live address lane).\nСтрок отобрано: 3.\n1. 2020-10-15T13:34:19Z | Списание с расчетного счета 00000000245 от 15.10.2020 13:34:19 | 66.01 / 51 | 134206.53\n2. 2020-07-15T13:11:23Z | Списание с расчетного счета 00000000191 от 15.07.2020 13:11:23 | 66.02 / 51 | 54125.93\n3. 2020-07-15T13:11:22Z | Списание с расчетного счета 00000000190 от 15.07.2020 13:11:22 | 66.01 / 51 | 122035.07", + "assistant_reply_first_line": "Период сохранен. Глубина live-выборки автоматически расширена до 1000 строк.", + "expected_intent": "bank_operations_by_contract", + "actual_intent": "bank_operations_by_contract", + "intent_match": true, + "expected_mode": "address_query", + "actual_mode": "address_query", + "mode_match": true, + "expected_reply_type": null, + "reply_match": true, + "semantic_pass": true, + "route_pass": true, + "route_health": "ok_or_factual", + "strict_policy": "route", + "strict_pass": true, + "selected_recipe": "address_bank_operations_by_contract_v1", + "missing_required_filters": [], + "match_failure_stage": "none", + "match_failure_reason": null, + "rows_fetched": 1000, + "rows_matched": 3, + "mcp_call_status": "matched_non_empty", + "limited_reason_category": null, + "llm_decomposition_applied": false, + "llm_decomposition_reason": "normalized_fragment_same", + "fallback_rule_hit": null, + "debug_payload": { + "trace_id": "address-SnUOcQaokp", + "prompt_version": "address_query_runtime_v1", + "schema_version": "address_query_runtime_v1", + "fallback_type": "none", + "route_summary": null, + "fragments": [], + "requirements_extracted": [], + "coverage_report": { + "requirements_total": 0, + "requirements_covered": 0, + "requirements_uncovered": [], + "requirements_partially_covered": [], + "clarification_needed_for": [], + "out_of_scope_requirements": [] + }, + "routes": [], + "retrieval_status": [], + "retrieval_results": [], + "answer_grounding_check": { + "status": "grounded", + "route_subject_match": true, + "missing_requirements": [], + "reasons": [ + "address_entity_detected", + "shape_not_detected", + "bank_ops_by_counterparty_signal_detected", + "intent_adjusted_to_contract_followup_context", + "contract_from_followup_context", + "period_from_followup_context", + "address_followup_context_applied", + "query_limit_auto_expanded_for_anchor_recovery" + ], + "why_included_summary": [], + "selection_reason_summary": [] + }, + "dropped_intent_segments": [], + "detected_mode": "address_query", + "detected_mode_confidence": "medium", + "query_shape": "UNKNOWN", + "query_shape_confidence": "low", + "detected_intent": "bank_operations_by_contract", + "detected_intent_confidence": "low", + "extracted_filters": { + "sort": "period_desc", + "limit": 20, + "contract": "19/15", + "period_from": "2020-01-01", + "period_to": "2020-12-31" + }, + "missing_required_filters": [], + "selected_recipe": "address_bank_operations_by_contract_v1", + "mcp_call_status_legacy": "matched_non_empty", + "account_scope_mode": "preferred", + "account_scope_fallback_applied": false, + "anchor_type": "contract", + "anchor_value_raw": "19/15", + "anchor_value_resolved": "19/15", + "resolver_confidence": "medium", + "ambiguity_count": 0, + "match_failure_stage": "none", + "match_failure_reason": null, + "mcp_call_status": "matched_non_empty", + "rows_fetched": 1000, + "raw_rows_received": 1000, + "rows_after_account_scope": 234, + "rows_after_recipe_filter": 3, + "rows_materialized": 234, + "rows_matched": 3, + "raw_row_keys_sample": [ + "Период", + "Регистратор", + "СчетДт", + "СчетКт", + "Сумма", + "Period", + "Registrator", + "AccountDt", + "AccountKt", + "Amount" + ], + "materialization_drop_reason": "none", + "account_token_raw": null, + "account_token_normalized": null, + "account_scope_fields_checked": [ + "account_dt", + "account_kt", + "registrator", + "analytics" + ], + "account_scope_match_strategy": "account_code_regex_plus_alias_map_v1", + "account_scope_drop_reason": "not_applicable", + "runtime_readiness": "LIVE_QUERYABLE_WITH_LIMITS", + "limited_reason_category": null, + "response_type": "FACTUAL_LIST", + "execution_lane": "address_query", + "llm_decomposition_applied": false, + "llm_decomposition_attempted": true, + "llm_provider_used": "local", + "llm_decomposition_trace_id": "TsqUlGYvPzOhJb", + "llm_decomposition_effective_message": "а теперь банковские операции", + "llm_decomposition_reason": "normalized_fragment_same", + "fallback_rule_hit": null, + "sanitized_user_message": "а теперь банковские операции", + "tool_gate_decision": "run_address_lane", + "tool_gate_reason": "address_mode_classifier_detected", + "answer_structure_v11": null, + "investigation_state_snapshot": null, + "normalized": null, + "normalizer_output": { + "trace_id": "TsqUlGYvPzOhJb", + "prompt_version": "normalizer_v2_0_2", + "applied": false, + "effective_message": "а теперь банковские операции" + } + }, + "error_code": null, + "error_message": null + }, + { + "index": 18, + "id": "F018", + "question": "а теперь только за 2020", + "session": "chain_contract_d", + "session_id": "asst-2026-04-02_Address_Followup_Context_Chains_2026-04-02_19-15-Run5-chain_contract_d", + "status_code": 200, + "ok": true, + "elapsed_ms": 1913, + "reply_type": "factual", + "trace_id": "address-dRhKVC0WX5", + "assistant_reply": "Период сохранен. Глубина live-выборки автоматически расширена до 1000 строк.\nСобран список банковских операций по договору (live address lane).\nСтрок отобрано: 3.\n1. 2020-10-15T13:34:19Z | Списание с расчетного счета 00000000245 от 15.10.2020 13:34:19 | 66.01 / 51 | 134206.53\n2. 2020-07-15T13:11:23Z | Списание с расчетного счета 00000000191 от 15.07.2020 13:11:23 | 66.02 / 51 | 54125.93\n3. 2020-07-15T13:11:22Z | Списание с расчетного счета 00000000190 от 15.07.2020 13:11:22 | 66.01 / 51 | 122035.07", + "assistant_reply_first_line": "Период сохранен. Глубина live-выборки автоматически расширена до 1000 строк.", + "expected_intent": "bank_operations_by_contract", + "actual_intent": "bank_operations_by_contract", + "intent_match": true, + "expected_mode": "address_query", + "actual_mode": "address_query", + "mode_match": true, + "expected_reply_type": null, + "reply_match": true, + "semantic_pass": true, + "route_pass": true, + "route_health": "ok_or_factual", + "strict_policy": "route", + "strict_pass": true, + "selected_recipe": "address_bank_operations_by_contract_v1", + "missing_required_filters": [], + "match_failure_stage": "none", + "match_failure_reason": null, + "rows_fetched": 1000, + "rows_matched": 3, + "mcp_call_status": "matched_non_empty", + "limited_reason_category": null, + "llm_decomposition_applied": false, + "llm_decomposition_reason": "not_address_like", + "fallback_rule_hit": null, + "debug_payload": { + "trace_id": "address-dRhKVC0WX5", + "prompt_version": "address_query_runtime_v1", + "schema_version": "address_query_runtime_v1", + "fallback_type": "none", + "route_summary": null, + "fragments": [], + "requirements_extracted": [], + "coverage_report": { + "requirements_total": 0, + "requirements_covered": 0, + "requirements_uncovered": [], + "requirements_partially_covered": [], + "clarification_needed_for": [], + "out_of_scope_requirements": [] + }, + "routes": [], + "retrieval_status": [], + "retrieval_results": [], + "answer_grounding_check": { + "status": "grounded", + "route_subject_match": true, + "missing_requirements": [], + "reasons": [ + "no_address_or_deep_signal", + "address_mode_from_followup_context", + "shape_not_detected", + "intent_not_supported_in_v1", + "intent_from_followup_context", + "contract_from_followup_context", + "address_followup_context_applied", + "query_limit_auto_expanded_for_anchor_recovery" + ], + "why_included_summary": [], + "selection_reason_summary": [] + }, + "dropped_intent_segments": [], + "detected_mode": "address_query", + "detected_mode_confidence": "medium", + "query_shape": "UNKNOWN", + "query_shape_confidence": "low", + "detected_intent": "bank_operations_by_contract", + "detected_intent_confidence": "low", + "extracted_filters": { + "sort": "period_desc", + "limit": 20, + "period_from": "2020-01-01", + "period_to": "2020-12-31", + "contract": "19/15" + }, + "missing_required_filters": [], + "selected_recipe": "address_bank_operations_by_contract_v1", + "mcp_call_status_legacy": "matched_non_empty", + "account_scope_mode": "preferred", + "account_scope_fallback_applied": false, + "anchor_type": "contract", + "anchor_value_raw": "19/15", + "anchor_value_resolved": "19/15", + "resolver_confidence": "medium", + "ambiguity_count": 0, + "match_failure_stage": "none", + "match_failure_reason": null, + "mcp_call_status": "matched_non_empty", + "rows_fetched": 1000, + "raw_rows_received": 1000, + "rows_after_account_scope": 234, + "rows_after_recipe_filter": 3, + "rows_materialized": 234, + "rows_matched": 3, + "raw_row_keys_sample": [ + "Период", + "Регистратор", + "СчетДт", + "СчетКт", + "Сумма", + "Period", + "Registrator", + "AccountDt", + "AccountKt", + "Amount" + ], + "materialization_drop_reason": "none", + "account_token_raw": null, + "account_token_normalized": null, + "account_scope_fields_checked": [ + "account_dt", + "account_kt", + "registrator", + "analytics" + ], + "account_scope_match_strategy": "account_code_regex_plus_alias_map_v1", + "account_scope_drop_reason": "not_applicable", + "runtime_readiness": "LIVE_QUERYABLE_WITH_LIMITS", + "limited_reason_category": null, + "response_type": "FACTUAL_LIST", + "execution_lane": "address_query", + "llm_decomposition_applied": false, + "llm_decomposition_attempted": false, + "llm_provider_used": "local", + "llm_decomposition_trace_id": null, + "llm_decomposition_effective_message": "а теперь только за 2020", + "llm_decomposition_reason": "not_address_like", + "fallback_rule_hit": null, + "sanitized_user_message": "а теперь только за 2020", + "tool_gate_decision": "run_address_lane", + "tool_gate_reason": "followup_context_detected", + "answer_structure_v11": null, + "investigation_state_snapshot": null, + "normalized": null, + "normalizer_output": null + }, + "error_code": null, + "error_message": null + }, + { + "index": 19, + "id": "F019", + "question": "есть ли открытые позиции по договору 19/15 на 2020-12-31", + "session": "chain_contract_d", + "session_id": "asst-2026-04-02_Address_Followup_Context_Chains_2026-04-02_19-15-Run5-chain_contract_d", + "status_code": 200, + "ok": true, + "elapsed_ms": 8197, + "reply_type": "factual", + "trace_id": "address-GEvcx7tNef", + "assistant_reply": "Период сохранен. Глубина live-выборки автоматически расширена до 1000 строк.\nСобраны открытые позиции по указанному фильтру (контрагент/договор).\nСтрок отобрано: 8.\n1. 2020-08-31T15:00:06Z | Поступление товаров и услуг 00000000024 от 31.08.2020 15:00:06 | 19.04 / 76.05 | 233.33\n2. 2020-07-15T13:11:19Z | Реализация товаров и услуг 00000000008 от 15.07.2020 13:11:19 | 62.01 / 90.01.1 | 43804.8\n3. 2020-07-15T13:11:19Z | Реализация товаров и услуг 00000000008 от 15.07.2020 13:11:19 | 62.01 / 90.01.1 | 9776\n4. 2020-07-15T13:11:19Z | Реализация товаров и услуг 00000000008 от 15.07.2020 13:11:19 | 62.01 / 90.01.1 | 73968\n5. 2020-07-15T13:11:19Z | Реализация товаров и услуг 00000000008 от 15.07.2020 13:11:19 | 62.01 / 90.01.1 | 94924.8\n6. 2020-07-15T13:11:19Z | Реализация товаров и услуг 00000000008 от 15.07.2020 13:11:19 | 62.01 / 90.01.1 | 54400", + "assistant_reply_first_line": "Период сохранен. Глубина live-выборки автоматически расширена до 1000 строк.", + "expected_intent": "open_items_by_counterparty_or_contract", + "actual_intent": "open_items_by_counterparty_or_contract", + "intent_match": true, + "expected_mode": "address_query", + "actual_mode": "address_query", + "mode_match": true, + "expected_reply_type": null, + "reply_match": true, + "semantic_pass": true, + "route_pass": true, + "route_health": "ok_or_factual", + "strict_policy": "route", + "strict_pass": true, + "selected_recipe": "address_open_items_by_party_or_contract_v1", + "missing_required_filters": [], + "match_failure_stage": "none", + "match_failure_reason": null, + "rows_fetched": 1000, + "rows_matched": 8, + "mcp_call_status": "matched_non_empty", + "limited_reason_category": null, + "llm_decomposition_applied": true, + "llm_decomposition_reason": "normalized_fragment_applied", + "fallback_rule_hit": null, + "debug_payload": { + "trace_id": "address-GEvcx7tNef", + "prompt_version": "address_query_runtime_v1", + "schema_version": "address_query_runtime_v1", + "fallback_type": "none", + "route_summary": null, + "fragments": [], + "requirements_extracted": [], + "coverage_report": { + "requirements_total": 0, + "requirements_covered": 0, + "requirements_uncovered": [], + "requirements_partially_covered": [], + "clarification_needed_for": [], + "out_of_scope_requirements": [] + }, + "routes": [], + "retrieval_status": [], + "retrieval_results": [], + "answer_grounding_check": { + "status": "grounded", + "route_subject_match": true, + "missing_requirements": [], + "reasons": [ + "address_entity_detected", + "verify_signal_detected", + "open_items_signal_detected", + "query_limit_auto_expanded_for_anchor_recovery" + ], + "why_included_summary": [], + "selection_reason_summary": [] + }, + "dropped_intent_segments": [], + "detected_mode": "address_query", + "detected_mode_confidence": "medium", + "query_shape": "VERIFY_FACTUAL", + "query_shape_confidence": "medium", + "detected_intent": "open_items_by_counterparty_or_contract", + "detected_intent_confidence": "medium", + "extracted_filters": { + "sort": "period_desc", + "limit": 20, + "contract": "19/15", + "as_of_date": "2020-12-31" + }, + "missing_required_filters": [], + "selected_recipe": "address_open_items_by_party_or_contract_v1", + "mcp_call_status_legacy": "matched_non_empty", + "account_scope_mode": "preferred", + "account_scope_fallback_applied": false, + "anchor_type": "contract", + "anchor_value_raw": "19/15", + "anchor_value_resolved": "19/15", + "resolver_confidence": "medium", + "ambiguity_count": 0, + "match_failure_stage": "none", + "match_failure_reason": null, + "mcp_call_status": "matched_non_empty", + "rows_fetched": 1000, + "raw_rows_received": 1000, + "rows_after_account_scope": 285, + "rows_after_recipe_filter": 8, + "rows_materialized": 285, + "rows_matched": 8, + "raw_row_keys_sample": [ + "Период", + "Регистратор", + "СчетДт", + "СчетКт", + "Сумма", + "Period", + "Registrator", + "AccountDt", + "AccountKt", + "Amount" + ], + "materialization_drop_reason": "none", + "account_token_raw": null, + "account_token_normalized": null, + "account_scope_fields_checked": [ + "account_dt", + "account_kt", + "registrator", + "analytics" + ], + "account_scope_match_strategy": "account_code_regex_plus_alias_map_v1", + "account_scope_drop_reason": "not_applicable", + "runtime_readiness": "LIVE_QUERYABLE_WITH_LIMITS", + "limited_reason_category": null, + "response_type": "FACTUAL_LIST", + "execution_lane": "address_query", + "llm_decomposition_applied": true, + "llm_decomposition_attempted": true, + "llm_provider_used": "local", + "llm_decomposition_trace_id": "5Z9d8eSSTY3Q07", + "llm_decomposition_effective_message": "Проверить наличие открытых позиций по договору 19/15 на конец периода 2020-12-31.", + "llm_decomposition_reason": "normalized_fragment_applied", + "fallback_rule_hit": null, + "sanitized_user_message": "есть ли открытые позиции по договору 19/15 на 2020-12-31", + "tool_gate_decision": "run_address_lane", + "tool_gate_reason": "address_mode_classifier_detected", + "answer_structure_v11": null, + "investigation_state_snapshot": null, + "normalized": null, + "normalizer_output": { + "trace_id": "5Z9d8eSSTY3Q07", + "prompt_version": "normalizer_v2_0_2", + "applied": true, + "effective_message": "Проверить наличие открытых позиций по договору 19/15 на конец периода 2020-12-31." + } + }, + "error_code": null, + "error_message": null + }, + { + "index": 20, + "id": "F020", + "question": "покажи документы по этому же договору", + "session": "chain_contract_d", + "session_id": "asst-2026-04-02_Address_Followup_Context_Chains_2026-04-02_19-15-Run5-chain_contract_d", + "status_code": 200, + "ok": true, + "elapsed_ms": 7165, + "reply_type": "factual", + "trace_id": "address-oCI8MJnupB", + "assistant_reply": "Собран список документов по договору (live address lane).\nСтрок отобрано: 1.\n1. 2021-12-31T12:00:00Z | Поступление товаров и услуг 00000000015 от 31.12.2021 12:00:00 | 19.04 / 76.05 | 233.33", + "assistant_reply_first_line": "Собран список документов по договору (live address lane).", + "expected_intent": "list_documents_by_contract", + "actual_intent": "list_documents_by_contract", + "intent_match": true, + "expected_mode": "address_query", + "actual_mode": "address_query", + "mode_match": true, + "expected_reply_type": null, + "reply_match": true, + "semantic_pass": true, + "route_pass": true, + "route_health": "ok_or_factual", + "strict_policy": "route", + "strict_pass": true, + "selected_recipe": "address_documents_by_contract_v1", + "missing_required_filters": [], + "match_failure_stage": "none", + "match_failure_reason": null, + "rows_fetched": 1000, + "rows_matched": 1, + "mcp_call_status": "matched_non_empty", + "limited_reason_category": null, + "llm_decomposition_applied": true, + "llm_decomposition_reason": "normalized_fragment_applied", + "fallback_rule_hit": null, + "debug_payload": { + "trace_id": "address-oCI8MJnupB", + "prompt_version": "address_query_runtime_v1", + "schema_version": "address_query_runtime_v1", + "fallback_type": "none", + "route_summary": null, + "fragments": [], + "requirements_extracted": [], + "coverage_report": { + "requirements_total": 0, + "requirements_covered": 0, + "requirements_uncovered": [], + "requirements_partially_covered": [], + "clarification_needed_for": [], + "out_of_scope_requirements": [] + }, + "routes": [], + "retrieval_status": [], + "retrieval_results": [], + "answer_grounding_check": { + "status": "grounded", + "route_subject_match": true, + "missing_requirements": [], + "reasons": [ + "address_action_detected", + "address_entity_detected", + "document_list_signal_detected", + "documents_by_contract_signal_detected", + "contract_from_followup_context", + "address_followup_context_applied" + ], + "why_included_summary": [], + "selection_reason_summary": [] + }, + "dropped_intent_segments": [], + "detected_mode": "address_query", + "detected_mode_confidence": "high", + "query_shape": "DOCUMENT_LIST", + "query_shape_confidence": "medium", + "detected_intent": "list_documents_by_contract", + "detected_intent_confidence": "medium", + "extracted_filters": { + "sort": "period_desc", + "limit": 20, + "contract": "19/15" + }, + "missing_required_filters": [], + "selected_recipe": "address_documents_by_contract_v1", + "mcp_call_status_legacy": "matched_non_empty", + "account_scope_mode": "preferred", + "account_scope_fallback_applied": false, + "anchor_type": "contract", + "anchor_value_raw": "19/15", + "anchor_value_resolved": "19/15", + "resolver_confidence": "medium", + "ambiguity_count": 0, + "match_failure_stage": "none", + "match_failure_reason": null, + "mcp_call_status": "matched_non_empty", + "rows_fetched": 1000, + "raw_rows_received": 1000, + "rows_after_account_scope": 416, + "rows_after_recipe_filter": 2, + "rows_materialized": 416, + "rows_matched": 1, + "raw_row_keys_sample": [ + "Период", + "Регистратор", + "СчетДт", + "СчетКт", + "Сумма", + "Period", + "Registrator", + "AccountDt", + "AccountKt", + "Amount" + ], + "materialization_drop_reason": "none", + "account_token_raw": null, + "account_token_normalized": null, + "account_scope_fields_checked": [ + "account_dt", + "account_kt", + "registrator", + "analytics" + ], + "account_scope_match_strategy": "account_code_regex_plus_alias_map_v1", + "account_scope_drop_reason": "not_applicable", + "runtime_readiness": "LIVE_QUERYABLE_WITH_LIMITS", + "limited_reason_category": null, + "response_type": "FACTUAL_LIST", + "execution_lane": "address_query", + "llm_decomposition_applied": true, + "llm_decomposition_attempted": true, + "llm_provider_used": "local", + "llm_decomposition_trace_id": "TCvGL8AdAdOLSf", + "llm_decomposition_effective_message": "Показать документы по указанному договору.", + "llm_decomposition_reason": "normalized_fragment_applied", + "fallback_rule_hit": null, + "sanitized_user_message": "покажи документы по этому же договору", + "tool_gate_decision": "run_address_lane", + "tool_gate_reason": "address_mode_classifier_detected", + "answer_structure_v11": null, + "investigation_state_snapshot": null, + "normalized": null, + "normalizer_output": { + "trace_id": "TCvGL8AdAdOLSf", + "prompt_version": "normalizer_v2_0_2", + "applied": true, + "effective_message": "Показать документы по указанному договору." + } + }, + "error_code": null, + "error_message": null + }, + { + "index": 21, + "id": "F021", + "question": "Покажи банковские операции по договору 19/15", + "session": "chain_contract_e", + "session_id": "asst-2026-04-02_Address_Followup_Context_Chains_2026-04-02_19-15-Run5-chain_contract_e", + "status_code": 200, + "ok": true, + "elapsed_ms": 7096, + "reply_type": "factual", + "trace_id": "address-tVpurq8wem", + "assistant_reply": "Собран список банковских операций по договору (live address lane).\nСтрок отобрано: 29.\n1. 2020-10-15T13:34:19Z | Списание с расчетного счета 00000000245 от 15.10.2020 13:34:19 | 66.01 / 51 | 134206.53\n2. 2020-07-15T13:11:23Z | Списание с расчетного счета 00000000191 от 15.07.2020 13:11:23 | 66.02 / 51 | 54125.93\n3. 2020-07-15T13:11:22Z | Списание с расчетного счета 00000000190 от 15.07.2020 13:11:22 | 66.01 / 51 | 122035.07\n4. 2019-11-29T12:00:02Z | Списание с расчетного счета 00000000515 от 29.11.2019 12:00:02 | 68.01.1 / 51 | 19058\n5. 2019-11-15T17:00:00Z | Списание с расчетного счета 00000000507 от 15.11.2019 17:00:00 | 66.02 / 51 | 68582.19\n6. 2019-11-15T12:00:07Z | Списание с расчетного счета 00000000506 от 15.11.2019 12:00:07 | 66.01 / 51 | 107578.81\n7. 2019-11-15T12:00:06Z | Списание с расчетного счета 00000000505 от 15.11.2019 12:00:06 | 70 / 51 | 29200\n8. 2019-11-15T12:00:05Z | Списание с расчетного счета 00000000504 от 15.11.2019 12:00:05 | 70 / 51 | 16000\n9. 2019-11-15T12:00:04Z | Списание с расчетного счета 00000000503 от 15.11.2019 12:00:04 | 69.02.7 / 51 | 32560\n10. 2019-11-15T12:00:03Z | Списание с расчетного счета 00000000502 от 15.11.2019 12:00:03 | 70 / 51 | 10296.85\n11. 2019-11-15T12:00:02Z | Списание с расчетного счета 00000000501 от 15.11.2019 12:00:02 | 69.03.1 / 51 | 7548\n12. 2019-11-15T12:00:01Z | Списание с расчетного счета 00000000500 от 15.11.2019 12:00:01 | 76.05 / 51 | 6900\n13. 2019-11-15T12:00:00Z | Списание с расчетного счета 00000000499 от 15.11.2019 12:00:00 | 69.11 / 51 | 296\n14. 2019-10-15T12:00:07Z | Поступление на расчетный счет 00000000052 от 15.10.2019 12:00:07 | 51 / 66.01 | 5000000\n15. 2019-10-15T12:00:06Z | Списание с расчетного счета 00000000454 от 15.10.2019 12:00:06 | 60.02 / 51 | 890000\n16. 2019-10-15T12:00:05Z | Списание с расчетного счета 00000000453 от 15.10.2019 12:00:05 | 76.05 / 51 | 491450\n17. 2019-10-15T12:00:04Z | Списание с расчетного счета 00000000452 от 15.10.2019 12:00:04 | 70 / 51 | 29200\n18. 2019-10-15T12:00:03Z | Списание с расчетного счета 00000000451 от 15.10.2019 12:00:03 | 70 / 51 | 16000\n19. 2019-10-15T12:00:02Z | Списание с расчетного счета 00000000450 от 15.10.2019 12:00:02 | 70 / 51 | 14000\n20. 2019-10-15T12:00:01Z | Списание с расчетного счета 00000000449 от 15.10.2019 12:00:01 | 76.05 / 51 | 3300\n21. 2019-10-15T12:00:00Z | Списание с расчетного счета 00000000448 от 15.10.2019 12:00:00 | 91.02 / 51 | 296\n22. 2019-09-17T12:00:00Z | Списание с расчетного счета 00000000415 от 17.09.2019 12:00:00 | 60.01 / 51 | 150000\n23. 2019-09-17T12:00:00Z | Списание с расчетного счета 00000000415 от 17.09.2019 12:00:00 | 60.01 / 51 | 170740\n24. 2019-08-01T14:37:15Z | Списание с расчетного счета 00000000345 от 01.08.2019 14:37:15 | 60.02 / 51 | 256500\n25. 2019-07-29T12:00:01Z | Списание с расчетного счета 00000000315 от 29.07.2019 12:00:01 | 68.04.1 / 51 | 42562\n26. 2019-07-15T12:00:03Z | Списание с расчетного счета 00000000294 от 15.07.2019 12:00:03 | 70 / 51 | 10800\n27. 2019-07-15T12:00:02Z | Списание с расчетного счета 00000000293 от 15.07.2019 12:00:02 | 70 / 51 | 14000\n28. 2019-07-15T12:00:01Z | Списание с расчетного счета 00000000292 от 15.07.2019 12:00:01 | 70 / 51 | 6800\n29. 2019-07-15T12:00:00Z | Списание с расчетного счета 00000000291 от 15.07.2019 12:00:00 | 91.02 / 51 | 158", + "assistant_reply_first_line": "Собран список банковских операций по договору (live address lane).", + "expected_intent": "bank_operations_by_contract", + "actual_intent": "bank_operations_by_contract", + "intent_match": true, + "expected_mode": "address_query", + "actual_mode": "address_query", + "mode_match": true, + "expected_reply_type": null, + "reply_match": true, + "semantic_pass": true, + "route_pass": true, + "route_health": "ok_or_factual", + "strict_policy": "route", + "strict_pass": true, + "selected_recipe": "address_bank_operations_by_contract_v1", + "missing_required_filters": [], + "match_failure_stage": "none", + "match_failure_reason": null, + "rows_fetched": 1000, + "rows_matched": 29, + "mcp_call_status": "matched_non_empty", + "limited_reason_category": null, + "llm_decomposition_applied": true, + "llm_decomposition_reason": "normalized_fragment_applied", + "fallback_rule_hit": null, + "debug_payload": { + "trace_id": "address-tVpurq8wem", + "prompt_version": "address_query_runtime_v1", + "schema_version": "address_query_runtime_v1", + "fallback_type": "none", + "route_summary": null, + "fragments": [], + "requirements_extracted": [], + "coverage_report": { + "requirements_total": 0, + "requirements_covered": 0, + "requirements_uncovered": [], + "requirements_partially_covered": [], + "clarification_needed_for": [], + "out_of_scope_requirements": [] + }, + "routes": [], + "retrieval_status": [], + "retrieval_results": [], + "answer_grounding_check": { + "status": "grounded", + "route_subject_match": true, + "missing_requirements": [], + "reasons": [ + "address_action_detected", + "address_entity_detected", + "object_signal_detected", + "bank_ops_by_contract_signal_detected" + ], + "why_included_summary": [], + "selection_reason_summary": [] + }, + "dropped_intent_segments": [], + "detected_mode": "address_query", + "detected_mode_confidence": "high", + "query_shape": "OBJECT_LOOKUP", + "query_shape_confidence": "medium", + "detected_intent": "bank_operations_by_contract", + "detected_intent_confidence": "medium", + "extracted_filters": { + "sort": "period_desc", + "limit": 20, + "account": "51", + "contract": "19/15" + }, + "missing_required_filters": [], + "selected_recipe": "address_bank_operations_by_contract_v1", + "mcp_call_status_legacy": "matched_non_empty", + "account_scope_mode": "preferred", + "account_scope_fallback_applied": false, + "anchor_type": "contract", + "anchor_value_raw": "19/15", + "anchor_value_resolved": "19/15", + "resolver_confidence": "medium", + "ambiguity_count": 0, + "match_failure_stage": "none", + "match_failure_reason": null, + "mcp_call_status": "matched_non_empty", + "rows_fetched": 1000, + "raw_rows_received": 1000, + "rows_after_account_scope": 1000, + "rows_after_recipe_filter": 29, + "rows_materialized": 1000, + "rows_matched": 29, + "raw_row_keys_sample": [ + "Период", + "Регистратор", + "СчетДт", + "СчетКт", + "Сумма", + "Period", + "Registrator", + "AccountDt", + "AccountKt", + "Amount" + ], + "materialization_drop_reason": "none", + "account_token_raw": "51", + "account_token_normalized": "51", + "account_scope_fields_checked": [ + "account_dt", + "account_kt", + "registrator", + "analytics" + ], + "account_scope_match_strategy": "account_code_regex_plus_alias_map_v1", + "account_scope_drop_reason": "not_applicable", + "runtime_readiness": "LIVE_QUERYABLE_WITH_LIMITS", + "limited_reason_category": null, + "response_type": "FACTUAL_LIST", + "execution_lane": "address_query", + "llm_decomposition_applied": true, + "llm_decomposition_attempted": true, + "llm_provider_used": "local", + "llm_decomposition_trace_id": "AVK92ccuIm0pSd", + "llm_decomposition_effective_message": "Показать банковские операции (счета 51, 62) связанные с договором 19/15.", + "llm_decomposition_reason": "normalized_fragment_applied", + "fallback_rule_hit": null, + "sanitized_user_message": "покажи банковские операции по договору 19/15", + "tool_gate_decision": "run_address_lane", + "tool_gate_reason": "address_mode_classifier_detected", + "answer_structure_v11": null, + "investigation_state_snapshot": null, + "normalized": null, + "normalizer_output": { + "trace_id": "AVK92ccuIm0pSd", + "prompt_version": "normalizer_v2_0_2", + "applied": true, + "effective_message": "Показать банковские операции (счета 51, 62) связанные с договором 19/15." + } + }, + "error_code": null, + "error_message": null + }, + { + "index": 22, + "id": "F022", + "question": "а теперь открытые позиции по нему", + "session": "chain_contract_e", + "session_id": "asst-2026-04-02_Address_Followup_Context_Chains_2026-04-02_19-15-Run5-chain_contract_e", + "status_code": 200, + "ok": true, + "elapsed_ms": 2044, + "reply_type": "factual", + "trace_id": "address-ZNDavN6G6Z", + "assistant_reply": "Период сохранен. Глубина live-выборки автоматически расширена до 1000 строк.\nСобраны открытые позиции по указанному фильтру (контрагент/договор).\nСтрок отобрано: 1.\n1. 2021-12-31T12:00:00Z | Поступление товаров и услуг 00000000015 от 31.12.2021 12:00:00 | 19.04 / 76.05 | 233.33", + "assistant_reply_first_line": "Период сохранен. Глубина live-выборки автоматически расширена до 1000 строк.", + "expected_intent": "open_items_by_counterparty_or_contract", + "actual_intent": "open_items_by_counterparty_or_contract", + "intent_match": true, + "expected_mode": "address_query", + "actual_mode": "address_query", + "mode_match": true, + "expected_reply_type": null, + "reply_match": true, + "semantic_pass": true, + "route_pass": true, + "route_health": "ok_or_factual", + "strict_policy": "route", + "strict_pass": true, + "selected_recipe": "address_open_items_by_party_or_contract_v1", + "missing_required_filters": [], + "match_failure_stage": "none", + "match_failure_reason": null, + "rows_fetched": 1000, + "rows_matched": 1, + "mcp_call_status": "matched_non_empty", + "limited_reason_category": null, + "llm_decomposition_applied": false, + "llm_decomposition_reason": "not_address_like", + "fallback_rule_hit": null, + "debug_payload": { + "trace_id": "address-ZNDavN6G6Z", + "prompt_version": "address_query_runtime_v1", + "schema_version": "address_query_runtime_v1", + "fallback_type": "none", + "route_summary": null, + "fragments": [], + "requirements_extracted": [], + "coverage_report": { + "requirements_total": 0, + "requirements_covered": 0, + "requirements_uncovered": [], + "requirements_partially_covered": [], + "clarification_needed_for": [], + "out_of_scope_requirements": [] + }, + "routes": [], + "retrieval_status": [], + "retrieval_results": [], + "answer_grounding_check": { + "status": "grounded", + "route_subject_match": true, + "missing_requirements": [], + "reasons": [ + "no_address_or_deep_signal", + "address_mode_from_followup_context", + "shape_not_detected", + "intent_not_supported_in_v1", + "open_items_from_followup_context", + "contract_from_followup_context", + "address_followup_context_applied", + "query_limit_auto_expanded_for_anchor_recovery" + ], + "why_included_summary": [], + "selection_reason_summary": [] + }, + "dropped_intent_segments": [], + "detected_mode": "address_query", + "detected_mode_confidence": "medium", + "query_shape": "UNKNOWN", + "query_shape_confidence": "low", + "detected_intent": "open_items_by_counterparty_or_contract", + "detected_intent_confidence": "low", + "extracted_filters": { + "sort": "period_desc", + "limit": 20, + "contract": "19/15" + }, + "missing_required_filters": [], + "selected_recipe": "address_open_items_by_party_or_contract_v1", + "mcp_call_status_legacy": "matched_non_empty", + "account_scope_mode": "preferred", + "account_scope_fallback_applied": false, + "anchor_type": "contract", + "anchor_value_raw": "19/15", + "anchor_value_resolved": "19/15", + "resolver_confidence": "medium", + "ambiguity_count": 0, + "match_failure_stage": "none", + "match_failure_reason": null, + "mcp_call_status": "matched_non_empty", + "rows_fetched": 1000, + "raw_rows_received": 1000, + "rows_after_account_scope": 190, + "rows_after_recipe_filter": 1, + "rows_materialized": 190, + "rows_matched": 1, + "raw_row_keys_sample": [ + "Период", + "Регистратор", + "СчетДт", + "СчетКт", + "Сумма", + "Period", + "Registrator", + "AccountDt", + "AccountKt", + "Amount" + ], + "materialization_drop_reason": "none", + "account_token_raw": null, + "account_token_normalized": null, + "account_scope_fields_checked": [ + "account_dt", + "account_kt", + "registrator", + "analytics" + ], + "account_scope_match_strategy": "account_code_regex_plus_alias_map_v1", + "account_scope_drop_reason": "not_applicable", + "runtime_readiness": "LIVE_QUERYABLE_WITH_LIMITS", + "limited_reason_category": null, + "response_type": "FACTUAL_LIST", + "execution_lane": "address_query", + "llm_decomposition_applied": false, + "llm_decomposition_attempted": false, + "llm_provider_used": "local", + "llm_decomposition_trace_id": null, + "llm_decomposition_effective_message": "а теперь открытые позиции по нему", + "llm_decomposition_reason": "not_address_like", + "fallback_rule_hit": null, + "sanitized_user_message": "а теперь открытые позиции по нему", + "tool_gate_decision": "run_address_lane", + "tool_gate_reason": "followup_context_detected", + "answer_structure_v11": null, + "investigation_state_snapshot": null, + "normalized": null, + "normalizer_output": null + }, + "error_code": null, + "error_message": null + }, + { + "index": 23, + "id": "F023", + "question": "а теперь на 2020-12-31", + "session": "chain_contract_e", + "session_id": "asst-2026-04-02_Address_Followup_Context_Chains_2026-04-02_19-15-Run5-chain_contract_e", + "status_code": 200, + "ok": true, + "elapsed_ms": 2046, + "reply_type": "factual", + "trace_id": "address-7wIusOcRfl", + "assistant_reply": "Период сохранен. Глубина live-выборки автоматически расширена до 1000 строк.\nСобраны открытые позиции по указанному фильтру (контрагент/договор).\nСтрок отобрано: 8.\n1. 2020-08-31T15:00:06Z | Поступление товаров и услуг 00000000024 от 31.08.2020 15:00:06 | 19.04 / 76.05 | 233.33\n2. 2020-07-15T13:11:19Z | Реализация товаров и услуг 00000000008 от 15.07.2020 13:11:19 | 62.01 / 90.01.1 | 43804.8\n3. 2020-07-15T13:11:19Z | Реализация товаров и услуг 00000000008 от 15.07.2020 13:11:19 | 62.01 / 90.01.1 | 9776\n4. 2020-07-15T13:11:19Z | Реализация товаров и услуг 00000000008 от 15.07.2020 13:11:19 | 62.01 / 90.01.1 | 73968\n5. 2020-07-15T13:11:19Z | Реализация товаров и услуг 00000000008 от 15.07.2020 13:11:19 | 62.01 / 90.01.1 | 94924.8\n6. 2020-07-15T13:11:19Z | Реализация товаров и услуг 00000000008 от 15.07.2020 13:11:19 | 62.01 / 90.01.1 | 54400", + "assistant_reply_first_line": "Период сохранен. Глубина live-выборки автоматически расширена до 1000 строк.", + "expected_intent": "open_items_by_counterparty_or_contract", + "actual_intent": "open_items_by_counterparty_or_contract", + "intent_match": true, + "expected_mode": "address_query", + "actual_mode": "address_query", + "mode_match": true, + "expected_reply_type": null, + "reply_match": true, + "semantic_pass": true, + "route_pass": true, + "route_health": "ok_or_factual", + "strict_policy": "route", + "strict_pass": true, + "selected_recipe": "address_open_items_by_party_or_contract_v1", + "missing_required_filters": [], + "match_failure_stage": "none", + "match_failure_reason": null, + "rows_fetched": 1000, + "rows_matched": 8, + "mcp_call_status": "matched_non_empty", + "limited_reason_category": null, + "llm_decomposition_applied": false, + "llm_decomposition_reason": "not_address_like", + "fallback_rule_hit": null, + "debug_payload": { + "trace_id": "address-7wIusOcRfl", + "prompt_version": "address_query_runtime_v1", + "schema_version": "address_query_runtime_v1", + "fallback_type": "none", + "route_summary": null, + "fragments": [], + "requirements_extracted": [], + "coverage_report": { + "requirements_total": 0, + "requirements_covered": 0, + "requirements_uncovered": [], + "requirements_partially_covered": [], + "clarification_needed_for": [], + "out_of_scope_requirements": [] + }, + "routes": [], + "retrieval_status": [], + "retrieval_results": [], + "answer_grounding_check": { + "status": "grounded", + "route_subject_match": true, + "missing_requirements": [], + "reasons": [ + "no_address_or_deep_signal", + "address_mode_from_followup_context", + "shape_not_detected", + "intent_not_supported_in_v1", + "intent_from_followup_context", + "contract_from_followup_context", + "address_followup_context_applied", + "query_limit_auto_expanded_for_anchor_recovery" + ], + "why_included_summary": [], + "selection_reason_summary": [] + }, + "dropped_intent_segments": [], + "detected_mode": "address_query", + "detected_mode_confidence": "medium", + "query_shape": "UNKNOWN", + "query_shape_confidence": "low", + "detected_intent": "open_items_by_counterparty_or_contract", + "detected_intent_confidence": "low", + "extracted_filters": { + "sort": "period_desc", + "limit": 20, + "as_of_date": "2020-12-31", + "contract": "19/15" + }, + "missing_required_filters": [], + "selected_recipe": "address_open_items_by_party_or_contract_v1", + "mcp_call_status_legacy": "matched_non_empty", + "account_scope_mode": "preferred", + "account_scope_fallback_applied": false, + "anchor_type": "contract", + "anchor_value_raw": "19/15", + "anchor_value_resolved": "19/15", + "resolver_confidence": "medium", + "ambiguity_count": 0, + "match_failure_stage": "none", + "match_failure_reason": null, + "mcp_call_status": "matched_non_empty", + "rows_fetched": 1000, + "raw_rows_received": 1000, + "rows_after_account_scope": 285, + "rows_after_recipe_filter": 8, + "rows_materialized": 285, + "rows_matched": 8, + "raw_row_keys_sample": [ + "Период", + "Регистратор", + "СчетДт", + "СчетКт", + "Сумма", + "Period", + "Registrator", + "AccountDt", + "AccountKt", + "Amount" + ], + "materialization_drop_reason": "none", + "account_token_raw": null, + "account_token_normalized": null, + "account_scope_fields_checked": [ + "account_dt", + "account_kt", + "registrator", + "analytics" + ], + "account_scope_match_strategy": "account_code_regex_plus_alias_map_v1", + "account_scope_drop_reason": "not_applicable", + "runtime_readiness": "LIVE_QUERYABLE_WITH_LIMITS", + "limited_reason_category": null, + "response_type": "FACTUAL_LIST", + "execution_lane": "address_query", + "llm_decomposition_applied": false, + "llm_decomposition_attempted": false, + "llm_provider_used": "local", + "llm_decomposition_trace_id": null, + "llm_decomposition_effective_message": "а теперь на 2020-12-31", + "llm_decomposition_reason": "not_address_like", + "fallback_rule_hit": null, + "sanitized_user_message": "а теперь на 2020-12-31", + "tool_gate_decision": "run_address_lane", + "tool_gate_reason": "followup_context_detected", + "answer_structure_v11": null, + "investigation_state_snapshot": null, + "normalized": null, + "normalizer_output": null + }, + "error_code": null, + "error_message": null + }, + { + "index": 24, + "id": "F024", + "question": "а по счету 51 на ту же дату", + "session": "chain_contract_e", + "session_id": "asst-2026-04-02_Address_Followup_Context_Chains_2026-04-02_19-15-Run5-chain_contract_e", + "status_code": 200, + "ok": true, + "elapsed_ms": 5883, + "reply_type": "factual", + "trace_id": "address-UHO9jDQ1Gb", + "assistant_reply": "Адресный срез по счету собран (по движениям live MCP).\nСтрок отобрано: 200.\nСумма по отобранным движениям: 31252061.949999988.\n1. 2020-12-30T12:00:00Z | Поступление на расчетный счет 00000000044 от 30.12.2020 12:00:00 | 51 / 62.02 | 3248300\n2. 2020-12-25T12:00:04Z | Списание с расчетного счета 00000000299 от 25.12.2020 12:00:04 | 91.02 / 51 | 179.78\n3. 2020-12-25T12:00:03Z | Списание с расчетного счета 00000000298 от 25.12.2020 12:00:03 | 68.01.1 / 51 | 9945\n4. 2020-12-25T12:00:02Z | Списание с расчетного счета 00000000297 от 25.12.2020 12:00:02 | 70 / 51 | 18800", + "assistant_reply_first_line": "Адресный срез по счету собран (по движениям live MCP).", + "expected_intent": "account_balance_snapshot", + "actual_intent": "account_balance_snapshot", + "intent_match": true, + "expected_mode": "address_query", + "actual_mode": "address_query", + "mode_match": true, + "expected_reply_type": null, + "reply_match": true, + "semantic_pass": true, + "route_pass": true, + "route_health": "ok_or_factual", + "strict_policy": "route", + "strict_pass": true, + "selected_recipe": "address_movements_account_snapshot_v1", + "missing_required_filters": [], + "match_failure_stage": "none", + "match_failure_reason": null, + "rows_fetched": 200, + "rows_matched": 200, + "mcp_call_status": "matched_non_empty", + "limited_reason_category": null, + "llm_decomposition_applied": true, + "llm_decomposition_reason": "normalized_fragment_applied", + "fallback_rule_hit": null, + "debug_payload": { + "trace_id": "address-UHO9jDQ1Gb", + "prompt_version": "address_query_runtime_v1", + "schema_version": "address_query_runtime_v1", + "fallback_type": "none", + "route_summary": null, + "fragments": [], + "requirements_extracted": [], + "coverage_report": { + "requirements_total": 0, + "requirements_covered": 0, + "requirements_uncovered": [], + "requirements_partially_covered": [], + "clarification_needed_for": [], + "out_of_scope_requirements": [] + }, + "routes": [], + "retrieval_status": [], + "retrieval_results": [], + "answer_grounding_check": { + "status": "grounded", + "route_subject_match": true, + "missing_requirements": [], + "reasons": [ + "address_entity_detected", + "shape_not_detected", + "account_balance_signal_detected", + "as_of_date_from_followup_context", + "address_followup_context_applied" + ], + "why_included_summary": [], + "selection_reason_summary": [] + }, + "dropped_intent_segments": [], + "detected_mode": "address_query", + "detected_mode_confidence": "medium", + "query_shape": "UNKNOWN", + "query_shape_confidence": "low", + "detected_intent": "account_balance_snapshot", + "detected_intent_confidence": "high", + "extracted_filters": { + "sort": "period_desc", + "limit": 20, + "account": "51", + "as_of_date": "2020-12-31" + }, + "missing_required_filters": [], + "selected_recipe": "address_movements_account_snapshot_v1", + "mcp_call_status_legacy": "matched_non_empty", + "account_scope_mode": "strict", + "account_scope_fallback_applied": false, + "anchor_type": "account", + "anchor_value_raw": "51", + "anchor_value_resolved": "51", + "resolver_confidence": "high", + "ambiguity_count": 0, + "match_failure_stage": "none", + "match_failure_reason": null, + "mcp_call_status": "matched_non_empty", + "rows_fetched": 200, + "raw_rows_received": 200, + "rows_after_account_scope": 200, + "rows_after_recipe_filter": 200, + "rows_materialized": 200, + "rows_matched": 200, + "raw_row_keys_sample": [ + "Период", + "Регистратор", + "СчетДт", + "СчетКт", + "Сумма", + "Period", + "Registrator", + "AccountDt", + "AccountKt", + "Amount" + ], + "materialization_drop_reason": "none", + "account_token_raw": "51", + "account_token_normalized": "51", + "account_scope_fields_checked": [ + "account_dt", + "account_kt", + "registrator", + "analytics" + ], + "account_scope_match_strategy": "account_code_regex_plus_alias_map_v1", + "account_scope_drop_reason": "rows_remaining_after_scope_filter", + "runtime_readiness": "LIVE_QUERYABLE_WITH_LIMITS", + "limited_reason_category": null, + "response_type": "FACTUAL_SUMMARY", + "execution_lane": "address_query", + "llm_decomposition_applied": true, + "llm_decomposition_attempted": true, + "llm_provider_used": "local", + "llm_decomposition_trace_id": "wK-ynnjaQvAzEM", + "llm_decomposition_effective_message": "по счету 51 на ту же дату", + "llm_decomposition_reason": "normalized_fragment_applied", + "fallback_rule_hit": null, + "sanitized_user_message": "а по счету 51 на ту же дату", + "tool_gate_decision": "run_address_lane", + "tool_gate_reason": "address_mode_classifier_detected", + "answer_structure_v11": null, + "investigation_state_snapshot": null, + "normalized": null, + "normalizer_output": { + "trace_id": "wK-ynnjaQvAzEM", + "prompt_version": "normalizer_v2_0_2", + "applied": true, + "effective_message": "по счету 51 на ту же дату" + } + }, + "error_code": null, + "error_message": null + }, + { + "index": 25, + "id": "F025", + "question": "а документы по этому же договору за тот же период", + "session": "chain_contract_e", + "session_id": "asst-2026-04-02_Address_Followup_Context_Chains_2026-04-02_19-15-Run5-chain_contract_e", + "status_code": 200, + "ok": true, + "elapsed_ms": 7221, + "reply_type": "factual", + "trace_id": "address-lS3e4yvmvH", + "assistant_reply": "Точный якорь не подтвердился в текущем окне live-данных; показаны ближайшие доступные документы/операции по выбранному типу.\nСобран список документов по договору (live address lane).\nСтрок отобрано: 120.\n1. 2022-09-30T12:00:00Z | Поступление товаров и услуг 00000000010 от 30.09.2022 12:00:00 | 19.04 / 76.05 | 191.67\n2. 2022-09-30T12:00:00Z | Поступление товаров и услуг 00000000010 от 30.09.2022 12:00:00 | 44.01 / 76.05 | 958.33\n3. 2022-08-31T12:00:00Z | Поступление товаров и услуг 00000000009 от 31.08.2022 12:00:00 | 19.04 / 76.05 | 233.33\n4. 2022-08-31T12:00:00Z | Поступление товаров и услуг 00000000009 от 31.08.2022 12:00:00 | 44.01 / 76.05 | 1166.67\n5. 2022-07-31T12:00:00Z | Поступление товаров и услуг 00000000008 от 31.07.2022 12:00:00 | 19.04 / 76.05 | 150.54\n6. 2022-07-31T12:00:00Z | Поступление товаров и услуг 00000000008 от 31.07.2022 12:00:00 | 44.01 / 76.05 | 752.69\n7. 2022-07-31T12:00:00Z | Поступление товаров и услуг 00000000008 от 31.07.2022 12:00:00 | 76.05 / 76.05 | 280\n8. 2022-06-30T00:00:01Z | Поступление товаров и услуг 00000000006 от 30.06.2022 0:00:01 | 19.04 / 76.05 | 186.67\n9. 2022-06-30T00:00:01Z | Поступление товаров и услуг 00000000006 от 30.06.2022 0:00:01 | 44.01 / 76.05 | 933.33\n10. 2022-05-31T00:00:01Z | Поступление товаров и услуг 00000000005 от 31.05.2022 0:00:01 | 19.04 / 76.05 | 233.33\n11. 2022-05-31T00:00:01Z | Поступление товаров и услуг 00000000005 от 31.05.2022 0:00:01 | 44.01 / 76.05 | 1166.67\n12. 2022-04-30T00:00:01Z | Поступление товаров и услуг 00000000004 от 30.04.2022 0:00:01 | 19.04 / 76.05 | 233.33\n13. 2022-04-30T00:00:01Z | Поступление товаров и услуг 00000000004 от 30.04.2022 0:00:01 | 44.01 / 76.05 | 1166.67\n14. 2022-04-18T12:00:00Z | Поступление товаров и услуг 00000000007 от 18.04.2022 12:00:00 | 97.21 / 60.01 | 14790\n15. 2022-04-18T12:00:00Z | Поступление товаров и услуг 00000000007 от 18.04.2022 12:00:00 | 60.01 / 60.02 | 14790\n16. 2022-04-13T12:00:00Z | Поступление на расчетный счет 00000000004 от 13.04.2022 12:00:00 | 51 / 76.05 | 1200000\n17. 2022-03-31T12:00:00Z | Поступление товаров и услуг 00000000001 от 31.03.2022 12:00:00 | 19.04 / 76.05 | 233.33\n18. 2022-03-31T12:00:00Z | Поступление товаров и услуг 00000000001 от 31.03.2022 12:00:00 | 44.01 / 76.05 | 1166.67\n19. 2022-02-28T12:00:00Z | Поступление товаров и услуг 00000000002 от 28.02.2022 12:00:00 | 19.04 / 76.05 | 233.33\n20. 2022-02-28T12:00:00Z | Поступление товаров и услуг 00000000002 от 28.02.2022 12:00:00 | 44.01 / 76.05 | 1166.67\n21. 2022-01-31T12:00:00Z | Поступление товаров и услуг 00000000003 от 31.01.2022 12:00:00 | 19.04 / 76.05 | 233.33\n22. 2022-01-31T12:00:00Z | Поступление товаров и услуг 00000000003 от 31.01.2022 12:00:00 | 44.01 / 76.05 | 1166.67\n23. 2022-01-20T12:00:05Z | Поступление на расчетный счет 00000000003 от 20.01.2022 12:00:05 | 51 / 60.02 | 217415\n24. 2022-01-20T12:00:05Z | Поступление на расчетный счет 00000000003 от 20.01.2022 12:00:05 | 51 / 60.02 | 114640\n25. 2022-01-20T12:00:05Z | Поступление на расчетный счет 00000000003 от 20.01.2022 12:00:05 | 51 / 60.02 | 659320\n26. 2022-01-20T12:00:05Z | Поступление на расчетный счет 00000000003 от 20.01.2022 12:00:05 | 51 / 60.02 | 109610\n27. 2022-01-20T12:00:05Z | Поступление на расчетный счет 00000000003 от 20.01.2022 12:00:05 | 51 / 60.02 | 162300\n28. 2022-01-20T12:00:05Z | Поступление на расчетный счет 00000000003 от 20.01.2022 12:00:05 | 51 / 60.02 | 990830\n29. 2022-01-20T12:00:04Z | Поступление на расчетный счет 00000000002 от 20.01.2022 12:00:04 | 51 / 60.02 | 302560\n30. 2022-01-20T12:00:04Z | Поступление на расчетный счет 00000000002 от 20.01.2022 12:00:04 | 51 / 60.02 | 105310\n31. 2022-01-20T12:00:04Z | Поступление на расчетный счет 00000000002 от 20.01.2022 12:00:04 | 51 / 60.02 | 615320\n32. 2022-01-20T12:00:04Z | Поступление на расчетный счет 00000000002 от 20.01.2022 12:00:04 | 51 / 60.02 | 144220\n33. 2022-01-20T12:00:04Z | Поступление на расчетный счет 00000000002 от 20.01.2022 12:00:04 | 51 / 60.02 | 56930\n34. 2022-01-20T12:00:04Z | Поступление на расчетный счет 00000000002 от 20.01.2022 12:00:04 | 51 / 60.02 | 50000\n35. 2022-01-20T12:00:04Z | Поступление на расчетный счет 00000000002 от 20.01.2022 12:00:04 | 51 / 60.02 | 425600\n36. 2022-01-20T12:00:03Z | Поступление на расчетный счет 00000000001 от 20.01.2022 12:00:03 | 51 / 60.02 | 119210\n37. 2022-01-20T12:00:03Z | Поступление на расчетный счет 00000000001 от 20.01.2022 12:00:03 | 51 / 60.02 | 180230\n38. 2022-01-20T12:00:03Z | Поступление на расчетный счет 00000000001 от 20.01.2022 12:00:03 | 51 / 60.02 | 144320\n39. 2022-01-20T12:00:03Z | Поступление на расчетный счет 00000000001 от 20.01.2022 12:00:03 | 51 / 60.02 | 320600\n40. 2022-01-20T12:00:03Z | Поступление на расчетный счет 00000000001 от 20.01.2022 12:00:03 | 51 / 60.02 | 126300\n41. 2021-12-31T12:00:00Z | Поступление товаров и услуг 00000000015 от 31.12.2021 12:00:00 | 19.04 / 76.05 | 233.33\n42. 2021-12-31T12:00:00Z | Поступление товаров и услуг 00000000015 от 31.12.2021 12:00:00 | 44.01 / 76.05 | 1166.67\n43. 2021-11-30T12:00:00Z | Поступление товаров и услуг 00000000014 от 30.11.2021 12:00:00 | 19.04 / 76.05 | 233.33\n44. 2021-11-30T12:00:00Z | Поступление товаров и услуг 00000000014 от 30.11.2021 12:00:00 | 44.01 / 76.05 | 1166.67\n45. 2021-11-10T12:00:07Z | Поступление на расчетный счет 00000000013 от 10.11.2021 12:00:07 | 51 / 62.02 | 20000\n46. 2021-10-31T12:00:00Z | Поступление товаров и услуг 00000000013 от 31.10.2021 12:00:00 | 19.04 / 76.05 | 233.33\n47. 2021-10-31T12:00:00Z | Поступление товаров и услуг 00000000013 от 31.10.2021 12:00:00 | 44.01 / 76.05 | 1166.67\n48. 2021-09-30T12:00:00Z | Поступление товаров и услуг 00000000012 от 30.09.2021 12:00:00 | 19.04 / 76.05 | 233.33\n49. 2021-09-30T12:00:00Z | Поступление товаров и услуг 00000000012 от 30.09.2021 12:00:00 | 44.01 / 76.05 | 1166.67\n50. 2021-09-29T12:00:03Z | Поступление на расчетный счет 00000000012 от 29.09.2021 12:00:03 | 51 / 62.02 | 50000\n51. 2021-08-31T12:00:05Z | Поступление товаров и услуг 00000000011 от 31.08.2021 12:00:05 | 19.04 / 76.05 | 233.33\n52. 2021-08-31T12:00:05Z | Поступление товаров и услуг 00000000011 от 31.08.2021 12:00:05 | 44.01 / 76.05 | 1166.67\n53. 2021-08-31T12:00:04Z | Поступление на расчетный счет 00000000011 от 31.08.2021 12:00:04 | 51 / 62.02 | 120500\n54. 2021-07-31T12:00:00Z | Поступление товаров и услуг 00000000010 от 31.07.2021 12:00:00 | 19.04 / 76.05 | 233.33\n55. 2021-07-31T12:00:00Z | Поступление товаров и услуг 00000000010 от 31.07.2021 12:00:00 | 44.01 / 76.05 | 1166.67\n56. 2021-06-30T00:00:00Z | Поступление товаров и услуг 00000000008 от 30.06.2021 0:00:00 | 19.04 / 76.05 | 233.33\n57. 2021-06-30T00:00:00Z | Поступление товаров и услуг 00000000008 от 30.06.2021 0:00:00 | 44.01 / 76.05 | 1166.67\n58. 2021-06-22T12:00:00Z | Поступление на расчетный счет 00000000010 от 22.06.2021 12:00:00 | 51 / 62.02 | 498630\n59. 2021-06-09T12:00:05Z | Поступление на расчетный счет 00000000009 от 09.06.2021 12:00:05 | 51 / 62.02 | 418960\n60. 2021-05-31T12:00:04Z | Поступление товаров и услуг 00000000006 от 31.05.2021 12:00:04 | 19.04 / 76.05 | 233.33\n61. 2021-05-31T12:00:04Z | Поступление товаров и услуг 00000000006 от 31.05.2021 12:00:04 | 44.01 / 76.05 | 1166.67\n62. 2021-05-17T12:00:00Z | Поступление товаров и услуг 00000000009 от 17.05.2021 12:00:00 | 19.04 / 60.01 | 12000\n63. 2021-05-17T12:00:00Z | Поступление товаров и услуг 00000000009 от 17.05.2021 12:00:00 | 97.21 / 60.01 | 60000\n64. 2021-05-17T12:00:00Z | Поступление товаров и услуг 00000000009 от 17.05.2021 12:00:00 | 60.01 / 60.02 | 72000\n65. 2021-04-30T12:00:00Z | Поступление товаров и услуг 00000000005 от 30.04.2021 12:00:00 | 19.04 / 76.05 | 233.33\n66. 2021-04-30T12:00:00Z | Поступление товаров и услуг 00000000005 от 30.04.2021 12:00:00 | 44.01 / 76.05 | 1166.67\n67. 2021-04-28T12:00:08Z | Поступление на расчетный счет 00000000008 от 28.04.2021 12:00:08 | 51 / 62.02 | 564300\n68. 2021-04-22T12:00:00Z | Поступление на расчетный счет 00000000007 от 22.04.2021 12:00:00 | 51 / 62.02 | 982420\n69. 2021-04-13T12:00:11Z | Поступление на расчетный счет 00000000006 от 13.04.2021 12:00:11 | 51 / 62.02 | 1882400\n70. 2021-04-07T12:00:00Z | Поступление товаров и услуг 00000000016 от 07.04.2021 12:00:00 | 97.21 / 60.01 | 11900\n71. 2021-04-07T12:00:00Z | Поступление товаров и услуг 00000000016 от 07.04.2021 12:00:00 | 60.01 / 60.02 | 11900\n72. 2021-03-31T23:59:59Z | Поступление товаров и услуг 00000000003 от 31.03.2021 23:59:59 | 19.04 / 76.05 | 233.33\n73. 2021-03-31T23:59:59Z | Поступление товаров и услуг 00000000003 от 31.03.2021 23:59:59 | 44.01 / 76.05 | 1166.67\n74. 2021-03-25T12:00:02Z | Поступление на расчетный счет 00000000005 от 25.03.2021 12:00:02 | 51 / 62.02 | 644315\n75. 2021-03-24T12:00:03Z | Поступление на расчетный счет 00000000004 от 24.03.2021 12:00:03 | 51 / 62.02 | 1219990\n76. 2021-03-22T12:00:02Z | Реализация товаров и услуг 00000000001 от 22.03.2021 12:00:02 | 62.01 / 90.01.1 | 598950\n77. 2021-03-22T12:00:02Z | Реализация товаров и услуг 00000000001 от 22.03.2021 12:00:02 | 62.02 / 62.01 | 95274\n78. 2021-03-22T12:00:02Z | Реализация товаров и услуг 00000000001 от 22.03.2021 12:00:02 | 62.02 / 62.01 | 38900\n79. 2021-03-22T12:00:02Z | Реализация товаров и услуг 00000000001 от 22.03.2021 12:00:02 | 62.02 / 62.01 | 464776\n80. 2021-03-18T12:00:00Z | Поступление на расчетный счет 00000000003 от 18.03.2021 12:00:00 | 51 / 62.02 | 1425310\n81. 2021-03-12T12:00:03Z | Поступление на расчетный счет 00000000002 от 12.03.2021 12:00:03 | 51 / 62.02 | 214600\n82. 2021-03-09T00:00:00Z | Поступление товаров и услуг 00000000001 от 09.03.2021 0:00:00 | 19.03 / 60.01 | 88415\n83. 2021-03-09T00:00:00Z | Поступление товаров и услуг 00000000001 от 09.03.2021 0:00:00 | 41.01 / 60.01 | 442075\n84. 2021-02-28T23:59:59Z | Поступление товаров и услуг 00000000004 от 28.02.2021 23:59:59 | 19.04 / 76.05 | 233.33\n85. 2021-02-28T23:59:59Z | Поступление товаров и услуг 00000000004 от 28.02.2021 23:59:59 | 44.01 / 76.05 | 1166.67\n86. 2021-02-19T12:00:01Z | Поступление на расчетный счет 00000000001 от 19.02.2021 12:00:01 | 51 / 62.02 | 518600\n87. 2021-01-31T23:59:59Z | Поступление товаров и услуг 00000000002 от 31.01.2021 23:59:59 | 19.04 / 76.05 | 233.33\n88. 2021-01-31T23:59:59Z | Поступление товаров и услуг 00000000002 от 31.01.2021 23:59:59 | 44.01 / 76.05 | 1166.67\n89. 2020-12-31T23:59:59Z | Поступление товаров и услуг 00000000034 от 31.12.2020 23:59:59 | 19.04 / 76.05 | 233.33\n90. 2020-12-31T23:59:59Z | Поступление товаров и услуг 00000000034 от 31.12.2020 23:59:59 | 44.01 / 76.05 | 1166.67\n91. 2020-12-30T12:00:00Z | Поступление на расчетный счет 00000000044 от 30.12.2020 12:00:00 | 51 / 62.02 | 3248300\n92. 2020-12-16T16:20:53Z | Поступление на расчетный счет 00000000043 от 16.12.2020 16:20:53 | 51 / 62.02 | 216600\n93. 2020-12-14T12:00:00Z | Поступление на расчетный счет 00000000042 от 14.12.2020 12:00:00 | 51 / 62.02 | 200000\n94. 2020-11-30T23:59:59Z | Поступление товаров и услуг 00000000033 от 30.11.2020 23:59:59 | 19.04 / 76.05 | 233.33\n95. 2020-11-30T23:59:59Z | Поступление товаров и услуг 00000000033 от 30.11.2020 23:59:59 | 44.01 / 76.05 | 1166.67\n96. 2020-11-30T12:00:08Z | Реализация товаров и услуг 00000000010 от 30.11.2020 12:00:08 | 62.01 / 90.01.1 | 118552\n97. 2020-11-30T12:00:08Z | Реализация товаров и услуг 00000000010 от 30.11.2020 12:00:08 | 62.01 / 90.01.1 | 458472\n98. 2020-11-30T12:00:08Z | Реализация товаров и услуг 00000000010 от 30.11.2020 12:00:08 | 62.02 / 62.01 | 577024\n99. 2020-11-30T12:00:07Z | Поступление на расчетный счет 00000000041 от 30.11.2020 12:00:07 | 51 / 62.02 | 38900\n100. 2020-11-26T12:00:03Z | Поступление на расчетный счет 00000000040 от 26.11.2020 12:00:03 | 51 / 60.02 | 900000\n101. 2020-11-26T12:00:03Z | Поступление на расчетный счет 00000000040 от 26.11.2020 12:00:03 | 51 / 60.02 | 144749\n102. 2020-11-20T12:00:00Z | Поступление товаров и услуг 00000000030 от 20.11.2020 12:00:00 | 19.03 / 60.01 | 1450\n103. 2020-11-20T12:00:00Z | Поступление товаров и услуг 00000000030 от 20.11.2020 12:00:00 | 41.01 / 60.01 | 7250\n104. 2020-11-20T12:00:00Z | Поступление товаров и услуг 00000000030 от 20.11.2020 12:00:00 | 60.01 / 60.02 | 8700\n105. 2020-11-19T12:00:04Z | Поступление на расчетный счет 00000000039 от 19.11.2020 12:00:04 | 51 / 62.02 | 1041800\n106. 2020-11-19T12:00:04Z | Поступление на расчетный счет 00000000039 от 19.11.2020 12:00:04 | 51 / 62.01 | 2278800\n107. 2020-11-18T12:00:05Z | Поступление на расчетный счет 00000000038 от 18.11.2020 12:00:05 | 51 / 62.01 | 745300\n108. 2020-11-18T12:00:04Z | Поступление на расчетный счет 00000000037 от 18.11.2020 12:00:04 | 51 / 62.01 | 320000\n109. 2020-11-13T12:00:03Z | Поступление на расчетный счет 00000000036 от 13.11.2020 12:00:03 | 51 / 62.01 | 313600\n110. 2020-11-10T15:39:14Z | Реализация товаров и услуг 00000000009 от 10.11.2020 15:39:14 | 62.01 / 90.01.1 | 4161000\n111. 2020-11-10T15:39:14Z | Реализация товаров и услуг 00000000009 от 10.11.2020 15:39:14 | 62.02 / 62.01 | 328300\n112. 2020-11-10T15:39:14Z | Реализация товаров и услуг 00000000009 от 10.11.2020 15:39:14 | 62.02 / 62.01 | 175000\n113. 2020-11-10T15:39:13Z | Поступление на расчетный счет 00000000035 от 10.11.2020 15:39:13 | 51 / 62.02 | 328300\n114. 2020-11-09T12:00:01Z | Поступление товаров и услуг 00000000031 от 09.11.2020 12:00:01 | 41.01 / 60.01 | 2229840\n115. 2020-10-31T23:59:59Z | Поступление товаров и услуг 00000000032 от 31.10.2020 23:59:59 | 19.04 / 76.05 | 233.33\n116. 2020-10-31T23:59:59Z | Поступление товаров и услуг 00000000032 от 31.10.2020 23:59:59 | 44.01 / 76.05 | 1166.67\n117. 2020-10-26T12:00:00Z | Поступление на расчетный счет 00000000034 от 26.10.2020 12:00:00 | 51 / 62.02 | 175000\n118. 2020-10-14T12:00:00Z | Поступление на расчетный счет 00000000033 от 14.10.2020 12:00:00 | 51 / 60.01 | 160000\n119. 2020-09-30T12:00:04Z | Поступление товаров и услуг 00000000025 от 30.09.2020 12:00:04 | 19.04 / 76.05 | 233.33\n120. 2020-09-30T12:00:04Z | Поступление товаров и услуг 00000000025 от 30.09.2020 12:00:04 | 44.01 / 76.05 | 1166.67", + "assistant_reply_first_line": "Точный якорь не подтвердился в текущем окне live-данных; показаны ближайшие доступные документы/операции по выбранному типу.", + "expected_intent": "list_documents_by_contract", + "actual_intent": "list_documents_by_contract", + "intent_match": true, + "expected_mode": "address_query", + "actual_mode": "address_query", + "mode_match": true, + "expected_reply_type": null, + "reply_match": true, + "semantic_pass": true, + "route_pass": true, + "route_health": "ok_or_factual", + "strict_policy": "route", + "strict_pass": true, + "selected_recipe": "address_documents_by_contract_v1", + "missing_required_filters": [], + "match_failure_stage": "materialized_but_not_anchor_matched", + "match_failure_reason": "contract_anchor_not_matched_in_materialized_rows", + "rows_fetched": 1000, + "rows_matched": 120, + "mcp_call_status": "matched_non_empty", + "limited_reason_category": null, + "llm_decomposition_applied": true, + "llm_decomposition_reason": "normalized_fragment_applied", + "fallback_rule_hit": null, + "debug_payload": { + "trace_id": "address-lS3e4yvmvH", + "prompt_version": "address_query_runtime_v1", + "schema_version": "address_query_runtime_v1", + "fallback_type": "none", + "route_summary": null, + "fragments": [], + "requirements_extracted": [], + "coverage_report": { + "requirements_total": 0, + "requirements_covered": 0, + "requirements_uncovered": [], + "requirements_partially_covered": [], + "clarification_needed_for": [], + "out_of_scope_requirements": [] + }, + "routes": [], + "retrieval_status": [], + "retrieval_results": [], + "answer_grounding_check": { + "status": "grounded", + "route_subject_match": true, + "missing_requirements": [], + "reasons": [ + "address_entity_detected", + "document_list_signal_detected", + "documents_by_contract_signal_detected", + "anchor_not_matched_fallback_rows" + ], + "why_included_summary": [], + "selection_reason_summary": [] + }, + "dropped_intent_segments": [], + "detected_mode": "address_query", + "detected_mode_confidence": "medium", + "query_shape": "DOCUMENT_LIST", + "query_shape_confidence": "medium", + "detected_intent": "list_documents_by_contract", + "detected_intent_confidence": "medium", + "extracted_filters": { + "sort": "period_desc", + "limit": 20, + "contract": "за указанный период" + }, + "missing_required_filters": [], + "selected_recipe": "address_documents_by_contract_v1", + "mcp_call_status_legacy": "matched_non_empty", + "account_scope_mode": "preferred", + "account_scope_fallback_applied": false, + "anchor_type": "contract", + "anchor_value_raw": "за указанный период", + "anchor_value_resolved": "за указанный период", + "resolver_confidence": "medium", + "ambiguity_count": 0, + "match_failure_stage": "materialized_but_not_anchor_matched", + "match_failure_reason": "contract_anchor_not_matched_in_materialized_rows", + "mcp_call_status": "matched_non_empty", + "rows_fetched": 1000, + "raw_rows_received": 1000, + "rows_after_account_scope": 416, + "rows_after_recipe_filter": 0, + "rows_materialized": 416, + "rows_matched": 120, + "raw_row_keys_sample": [ + "Период", + "Регистратор", + "СчетДт", + "СчетКт", + "Сумма", + "Period", + "Registrator", + "AccountDt", + "AccountKt", + "Amount" + ], + "materialization_drop_reason": "none", + "account_token_raw": null, + "account_token_normalized": null, + "account_scope_fields_checked": [ + "account_dt", + "account_kt", + "registrator", + "analytics" + ], + "account_scope_match_strategy": "account_code_regex_plus_alias_map_v1", + "account_scope_drop_reason": "not_applicable", + "runtime_readiness": "LIVE_QUERYABLE_WITH_LIMITS", + "limited_reason_category": null, + "response_type": "FACTUAL_LIST", + "execution_lane": "address_query", + "llm_decomposition_applied": true, + "llm_decomposition_attempted": true, + "llm_provider_used": "local", + "llm_decomposition_trace_id": "cKA8EEgMVSYW74", + "llm_decomposition_effective_message": "документы по договору за указанный период", + "llm_decomposition_reason": "normalized_fragment_applied", + "fallback_rule_hit": null, + "sanitized_user_message": "а документы по этому же договору за тот же период", + "tool_gate_decision": "run_address_lane", + "tool_gate_reason": "address_mode_classifier_detected", + "answer_structure_v11": null, + "investigation_state_snapshot": null, + "normalized": null, + "normalizer_output": { + "trace_id": "cKA8EEgMVSYW74", + "prompt_version": "normalizer_v2_0_2", + "applied": true, + "effective_message": "документы по договору за указанный период" + } + }, + "error_code": null, + "error_message": null + } + ] +} diff --git a/docs/ADDRESS/runs/2026-04-02_Address_Followup_Context_Chains_2026-04-02_19-15-Run5/response_audit.md b/docs/ADDRESS/runs/2026-04-02_Address_Followup_Context_Chains_2026-04-02_19-15-Run5/response_audit.md new file mode 100644 index 0000000..3640601 --- /dev/null +++ b/docs/ADDRESS/runs/2026-04-02_Address_Followup_Context_Chains_2026-04-02_19-15-Run5/response_audit.md @@ -0,0 +1,29 @@ +# Response Audit: 2026-04-02_Address_Followup_Context_Chains_2026-04-02_19-15-Run5 + +| id | strict | route_health | reply_type | intent | limited_reason | question | assistant_first_line | +|---|---|---|---|---|---|---|---| +| F001 | True | ok_or_factual | factual | list_documents_by_counterparty | None | Покажи документы по СВК за 2020 | Собран список документов по контрагенту (live address lane). | +| F002 | True | ok_or_factual | factual | list_documents_by_counterparty | None | а теперь только за май 2020 | По окну 2020-05-01..2020-05-31 строк не найдено; показаны ближайшие доступные данные 2020-07-27..2021-11-10. | +| F003 | True | ok_or_factual | factual | account_balance_snapshot | None | а по счету 60.01 на ту же дату | Адресный срез по счету собран (по движениям live MCP). | +| F004 | True | ok_or_factual | factual | account_balance_snapshot | None | а на ту же дату по 62.01 | Адресный срез по счету собран (по движениям live MCP). | +| F005 | True | ok_or_factual | factual | documents_forming_balance | None | раскрой остаток по 62.01 документами на ту же дату | Собран drilldown документов, формирующих остаток по счету на указанную дату. | +| F006 | True | ok_or_factual | factual | bank_operations_by_counterparty | None | Покажи банковские операции по СВК за 2020 | Точный якорь не подтвердился в текущем окне live-данных; показаны ближайшие доступные документы/операции по выбранному типу. | +| F007 | True | ok_or_factual | factual | bank_operations_by_counterparty | None | а теперь только ноябрь 2020 | Точный якорь не подтвердился в текущем окне live-данных; показаны ближайшие доступные документы/операции по выбранному типу. | +| F008 | True | ok_or_factual | factual | list_documents_by_counterparty | None | а теперь документы по нему | Точный якорь не подтвердился в текущем окне live-данных; показаны ближайшие доступные документы/операции по выбранному типу. | +| F009 | True | ok_or_factual | factual | account_balance_snapshot | None | и остаток по 51 на ту же дату | Адресный срез по счету собран (по движениям live MCP). | +| F010 | True | ok_or_factual | factual | account_balance_snapshot | None | а теперь только май 2020 | Адресный срез по счету собран (по движениям live MCP). | +| F011 | True | partial_non_blocking | partial_coverage | account_balance_snapshot | empty_match | Покажи сальдо по счету 60 на 2020-12-31 | В live-данных по текущему фильтру записи не найдены. | +| F012 | True | ok_or_factual | factual | account_balance_snapshot | None | а теперь только май 2020 | Адресный срез по счету собран (по движениям live MCP). | +| F013 | True | ok_or_factual | factual | account_balance_snapshot | None | а на ту же дату по 62 | Адресный срез по счету собран (по движениям live MCP). | +| F014 | True | ok_or_factual | factual | documents_forming_balance | None | раскрой 62 документами на ту же дату | Собран drilldown документов, формирующих остаток по счету на указанную дату. | +| F015 | True | partial_non_blocking | partial_coverage | account_balance_snapshot | empty_match | вернись на 2020-12-31 по 60 | В live-данных по текущему фильтру записи не найдены. | +| F016 | True | ok_or_factual | factual | list_documents_by_contract | None | Покажи документы по договору 19/15 за 2020 | Период сохранен. Глубина live-выборки автоматически расширена до 1000 строк. | +| F017 | True | ok_or_factual | factual | bank_operations_by_contract | None | а теперь банковские операции | Период сохранен. Глубина live-выборки автоматически расширена до 1000 строк. | +| F018 | True | ok_or_factual | factual | bank_operations_by_contract | None | а теперь только за 2020 | Период сохранен. Глубина live-выборки автоматически расширена до 1000 строк. | +| F019 | True | ok_or_factual | factual | open_items_by_counterparty_or_contract | None | есть ли открытые позиции по договору 19/15 на 2020-12-31 | Период сохранен. Глубина live-выборки автоматически расширена до 1000 строк. | +| F020 | True | ok_or_factual | factual | list_documents_by_contract | None | покажи документы по этому же договору | Собран список документов по договору (live address lane). | +| F021 | True | ok_or_factual | factual | bank_operations_by_contract | None | Покажи банковские операции по договору 19/15 | Собран список банковских операций по договору (live address lane). | +| F022 | True | ok_or_factual | factual | open_items_by_counterparty_or_contract | None | а теперь открытые позиции по нему | Период сохранен. Глубина live-выборки автоматически расширена до 1000 строк. | +| F023 | True | ok_or_factual | factual | open_items_by_counterparty_or_contract | None | а теперь на 2020-12-31 | Период сохранен. Глубина live-выборки автоматически расширена до 1000 строк. | +| F024 | True | ok_or_factual | factual | account_balance_snapshot | None | а по счету 51 на ту же дату | Адресный срез по счету собран (по движениям live MCP). | +| F025 | True | ok_or_factual | factual | list_documents_by_contract | None | а документы по этому же договору за тот же период | Точный якорь не подтвердился в текущем окне live-данных; показаны ближайшие доступные документы/операции по выбранному типу. | diff --git a/docs/ADDRESS/runs/2026-04-02_Address_Followup_Context_Chains_2026-04-02_19-15-Run5/run_summary.json b/docs/ADDRESS/runs/2026-04-02_Address_Followup_Context_Chains_2026-04-02_19-15-Run5/run_summary.json new file mode 100644 index 0000000..e4a4063 --- /dev/null +++ b/docs/ADDRESS/runs/2026-04-02_Address_Followup_Context_Chains_2026-04-02_19-15-Run5/run_summary.json @@ -0,0 +1,55 @@ +{ + "run_id": "2026-04-02_Address_Followup_Context_Chains_2026-04-02_19-15-Run5", + "generated_at": "2026-04-02T14:51:52", + "source_questions_file": "X:\\1C\\NDC_1C\\docs\\ADDRESS\\question_sets\\address_followup_context_chains_2026-04-02.json", + "backend_url": "http://127.0.0.1:8787/api/assistant/message", + "llm_provider": "local", + "llm_model": "qwen2.5-14b-instruct-1m", + "llm_base_url": "http://127.0.0.1:1234", + "strict_policy": "route", + "totals": { + "questions_total": 25, + "ok_200_count": 25, + "semantic_pass_count": 25, + "semantic_pass_rate": 1.0, + "route_pass_count": 25, + "route_pass_rate": 1.0, + "strict_pass_count": 25, + "strict_pass_rate": 1.0, + "factual_count": 23, + "partial_coverage_count": 2, + "clarification_required_count": 0, + "http_error_count": 0, + "llm_decomposition_applied_count": 13, + "avg_elapsed_ms": 4896.8 + }, + "distributions": { + "reply_type": { + "factual": 23, + "partial_coverage": 2 + }, + "actual_intent": { + "list_documents_by_counterparty": 3, + "account_balance_snapshot": 9, + "documents_forming_balance": 2, + "bank_operations_by_counterparty": 2, + "list_documents_by_contract": 3, + "bank_operations_by_contract": 3, + "open_items_by_counterparty_or_contract": 3 + }, + "actual_mode": { + "address_query": 25 + }, + "mcp_call_status": { + "matched_non_empty": 23, + "no_raw_rows": 2 + }, + "limited_reason_category": { + "empty_match": 2 + }, + "route_health": { + "ok_or_factual": 23, + "partial_non_blocking": 2 + } + } +} diff --git a/docs/ADDRESS/runs/2026-04-02_Address_Full_Live_Run_2026-04-02_08-03-09/README.md b/docs/ADDRESS/runs/2026-04-02_Address_Full_Live_Run_2026-04-02_08-03-09/README.md index c29caff..b3a4d6c 100644 --- a/docs/ADDRESS/runs/2026-04-02_Address_Full_Live_Run_2026-04-02_08-03-09/README.md +++ b/docs/ADDRESS/runs/2026-04-02_Address_Full_Live_Run_2026-04-02_08-03-09/README.md @@ -9,11 +9,11 @@ - Avg latency (ms): 1157.8 ## Top Partial Cases -- #11: Покажи документы по договору 15/24 +- #11: Покажи документы по договору 24/15 reply_type=partial_coverage; mcp=materialized_but_filtered_out_by_recipe; limited_reason=recipe_visibility_gap; llm_reason=fallback_rule_applied_after_llm_error -- #13: Есть ли долг по договору 15/24 на 2020-07-31 +- #13: Есть ли долг по договору 24/15 на 2020-07-31 reply_type=partial_coverage; mcp=materialized_but_not_anchor_matched; limited_reason=empty_match; llm_reason=error:Failed to extract output_text from /responses payload. -- #33: покажи банк опер по дог 15/24 пж +- #33: покажи банк опер по дог 24/15 пж reply_type=partial_coverage; mcp=skipped; limited_reason=unsupported; llm_reason=fallback_rule_applied_after_llm_error ## Artifacts diff --git a/docs/ADDRESS/runs/2026-04-02_Address_Full_Live_Run_2026-04-02_08-03-09/failures_only.json b/docs/ADDRESS/runs/2026-04-02_Address_Full_Live_Run_2026-04-02_08-03-09/failures_only.json index b48f92c..eafc005 100644 --- a/docs/ADDRESS/runs/2026-04-02_Address_Full_Live_Run_2026-04-02_08-03-09/failures_only.json +++ b/docs/ADDRESS/runs/2026-04-02_Address_Full_Live_Run_2026-04-02_08-03-09/failures_only.json @@ -1,7 +1,7 @@ [ { "number": 11, - "question": "Покажи документы по договору 15/24", + "question": "Покажи документы по договору 24/15", "session_key": "single_11", "session_id": "asst-x504ZNzRpo", "status_code": 200, @@ -22,7 +22,7 @@ "llm_provider_used": "local", "fallback_rule_hit": "documents_contract_rewrite", "llm_decomposition_trace_id": null, - "llm_decomposition_effective_message": "документы по договору 15/24", + "llm_decomposition_effective_message": "документы по договору 24/15", "error_text": null, "debug": { "trace_id": "address-R4AOTGWmNt", @@ -91,7 +91,7 @@ "extracted_filters": { "sort": "period_desc", "limit": 20, - "contract": "15/24" + "contract": "24/15" }, "missing_required_filters": [ @@ -101,8 +101,8 @@ "account_scope_mode": "preferred", "account_scope_fallback_applied": false, "anchor_type": "contract", - "anchor_value_raw": "15/24", - "anchor_value_resolved": "15/24", + "anchor_value_raw": "24/15", + "anchor_value_resolved": "24/15", "resolver_confidence": "medium", "ambiguity_count": 0, "match_failure_stage": "materialized_but_filtered_out_by_recipe", @@ -145,10 +145,10 @@ "llm_decomposition_attempted": true, "llm_provider_used": "local", "llm_decomposition_trace_id": null, - "llm_decomposition_effective_message": "документы по договору 15/24", + "llm_decomposition_effective_message": "документы по договору 24/15", "llm_decomposition_reason": "fallback_rule_applied_after_llm_error", "fallback_rule_hit": "documents_contract_rewrite", - "sanitized_user_message": "покажи документы по договору 15/24", + "sanitized_user_message": "покажи документы по договору 24/15", "tool_gate_decision": "run_address_lane", "tool_gate_reason": "address_signal_detected", "answer_structure_v11": null, @@ -159,7 +159,7 @@ }, { "number": 13, - "question": "Есть ли долг по договору 15/24 на 2020-07-31", + "question": "Есть ли долг по договору 24/15 на 2020-07-31", "session_key": "single_13", "session_id": "asst-UUVkCb5sCS", "status_code": 200, @@ -180,7 +180,7 @@ "llm_provider_used": "local", "fallback_rule_hit": null, "llm_decomposition_trace_id": null, - "llm_decomposition_effective_message": "Есть ли долг по договору 15/24 на 2020-07-31", + "llm_decomposition_effective_message": "Есть ли долг по договору 24/15 на 2020-07-31", "error_text": null, "debug": { "trace_id": "address-Ea84sfq8iH", @@ -250,7 +250,7 @@ "extracted_filters": { "sort": "period_desc", "limit": 20, - "contract": "15/24", + "contract": "24/15", "period_from": "2020-07-01", "period_to": "2020-07-31" }, @@ -262,8 +262,8 @@ "account_scope_mode": "preferred", "account_scope_fallback_applied": true, "anchor_type": "contract", - "anchor_value_raw": "15/24", - "anchor_value_resolved": "15/24", + "anchor_value_raw": "24/15", + "anchor_value_resolved": "24/15", "resolver_confidence": "medium", "ambiguity_count": 0, "match_failure_stage": "materialized_but_not_anchor_matched", @@ -306,10 +306,10 @@ "llm_decomposition_attempted": true, "llm_provider_used": "local", "llm_decomposition_trace_id": null, - "llm_decomposition_effective_message": "Есть ли долг по договору 15/24 на 2020-07-31", + "llm_decomposition_effective_message": "Есть ли долг по договору 24/15 на 2020-07-31", "llm_decomposition_reason": "error:Failed to extract output_text from /responses payload.", "fallback_rule_hit": null, - "sanitized_user_message": "есть ли долг по договору 15/24 на 2020-07-31", + "sanitized_user_message": "есть ли долг по договору 24/15 на 2020-07-31", "tool_gate_decision": "run_address_lane", "tool_gate_reason": "address_signal_detected", "answer_structure_v11": null, @@ -320,7 +320,7 @@ }, { "number": 33, - "question": "покажи банк опер по дог 15/24 пж", + "question": "покажи банк опер по дог 24/15 пж", "session_key": "single_33", "session_id": "asst-gXTpxnmWpG", "status_code": 200, @@ -341,7 +341,7 @@ "llm_provider_used": "local", "fallback_rule_hit": "noise_cleanup", "llm_decomposition_trace_id": null, - "llm_decomposition_effective_message": "покажи банк опер по дог 15/24", + "llm_decomposition_effective_message": "покажи банк опер по дог 24/15", "error_text": null, "debug": { "trace_id": "address-VyJiL2DoTr", @@ -455,10 +455,10 @@ "llm_decomposition_attempted": true, "llm_provider_used": "local", "llm_decomposition_trace_id": null, - "llm_decomposition_effective_message": "покажи банк опер по дог 15/24", + "llm_decomposition_effective_message": "покажи банк опер по дог 24/15", "llm_decomposition_reason": "fallback_rule_applied_after_llm_error", "fallback_rule_hit": "noise_cleanup", - "sanitized_user_message": "покажи банк опер по дог 15/24", + "sanitized_user_message": "покажи банк опер по дог 24/15", "tool_gate_decision": "run_address_lane", "tool_gate_reason": "address_signal_detected", "answer_structure_v11": null, diff --git a/docs/ADDRESS/runs/2026-04-02_Address_Full_Live_Run_2026-04-02_08-03-09/full_live_results.json b/docs/ADDRESS/runs/2026-04-02_Address_Full_Live_Run_2026-04-02_08-03-09/full_live_results.json index 16a62c9..55274fd 100644 --- a/docs/ADDRESS/runs/2026-04-02_Address_Full_Live_Run_2026-04-02_08-03-09/full_live_results.json +++ b/docs/ADDRESS/runs/2026-04-02_Address_Full_Live_Run_2026-04-02_08-03-09/full_live_results.json @@ -1497,7 +1497,7 @@ }, { "number": 10, - "question": "Покажи документы по договору 15/24 за 2020", + "question": "Покажи документы по договору 24/15 за 2020", "session_key": "single_10", "session_id": "asst-sny3sFB19c", "status_code": 200, @@ -1518,7 +1518,7 @@ "llm_provider_used": "local", "fallback_rule_hit": "documents_contract_year_rewrite", "llm_decomposition_trace_id": null, - "llm_decomposition_effective_message": "документы по договору 15/24 за 2020 год", + "llm_decomposition_effective_message": "документы по договору 24/15 за 2020 год", "error_text": null, "debug": { "trace_id": "address--lU8n9GlSZ", @@ -1588,7 +1588,7 @@ "extracted_filters": { "sort": "period_desc", "limit": 20, - "contract": "15/24", + "contract": "24/15", "period_from": "2020-01-01", "period_to": "2020-12-31" }, @@ -1600,8 +1600,8 @@ "account_scope_mode": "preferred", "account_scope_fallback_applied": false, "anchor_type": "contract", - "anchor_value_raw": "15/24", - "anchor_value_resolved": "15/24", + "anchor_value_raw": "24/15", + "anchor_value_resolved": "24/15", "resolver_confidence": "medium", "ambiguity_count": 0, "match_failure_stage": "none", @@ -1644,10 +1644,10 @@ "llm_decomposition_attempted": true, "llm_provider_used": "local", "llm_decomposition_trace_id": null, - "llm_decomposition_effective_message": "документы по договору 15/24 за 2020 год", + "llm_decomposition_effective_message": "документы по договору 24/15 за 2020 год", "llm_decomposition_reason": "fallback_rule_applied_after_llm_error", "fallback_rule_hit": "documents_contract_year_rewrite", - "sanitized_user_message": "покажи документы по договору 15/24 за 2020", + "sanitized_user_message": "покажи документы по договору 24/15 за 2020", "tool_gate_decision": "run_address_lane", "tool_gate_reason": "address_signal_detected", "answer_structure_v11": null, @@ -1658,7 +1658,7 @@ }, { "number": 11, - "question": "Покажи документы по договору 15/24", + "question": "Покажи документы по договору 24/15", "session_key": "single_11", "session_id": "asst-x504ZNzRpo", "status_code": 200, @@ -1679,7 +1679,7 @@ "llm_provider_used": "local", "fallback_rule_hit": "documents_contract_rewrite", "llm_decomposition_trace_id": null, - "llm_decomposition_effective_message": "документы по договору 15/24", + "llm_decomposition_effective_message": "документы по договору 24/15", "error_text": null, "debug": { "trace_id": "address-R4AOTGWmNt", @@ -1748,7 +1748,7 @@ "extracted_filters": { "sort": "period_desc", "limit": 20, - "contract": "15/24" + "contract": "24/15" }, "missing_required_filters": [ @@ -1758,8 +1758,8 @@ "account_scope_mode": "preferred", "account_scope_fallback_applied": false, "anchor_type": "contract", - "anchor_value_raw": "15/24", - "anchor_value_resolved": "15/24", + "anchor_value_raw": "24/15", + "anchor_value_resolved": "24/15", "resolver_confidence": "medium", "ambiguity_count": 0, "match_failure_stage": "materialized_but_filtered_out_by_recipe", @@ -1802,10 +1802,10 @@ "llm_decomposition_attempted": true, "llm_provider_used": "local", "llm_decomposition_trace_id": null, - "llm_decomposition_effective_message": "документы по договору 15/24", + "llm_decomposition_effective_message": "документы по договору 24/15", "llm_decomposition_reason": "fallback_rule_applied_after_llm_error", "fallback_rule_hit": "documents_contract_rewrite", - "sanitized_user_message": "покажи документы по договору 15/24", + "sanitized_user_message": "покажи документы по договору 24/15", "tool_gate_decision": "run_address_lane", "tool_gate_reason": "address_signal_detected", "answer_structure_v11": null, @@ -1816,7 +1816,7 @@ }, { "number": 12, - "question": "Покажи банковские операции по договору 15/24", + "question": "Покажи банковские операции по договору 24/15", "session_key": "single_12", "session_id": "asst-gaC9QR3ac9", "status_code": 200, @@ -1837,7 +1837,7 @@ "llm_provider_used": "local", "fallback_rule_hit": "bank_operations_contract_rewrite", "llm_decomposition_trace_id": null, - "llm_decomposition_effective_message": "банковские операции по договору 15/24", + "llm_decomposition_effective_message": "банковские операции по договору 24/15", "error_text": null, "debug": { "trace_id": "address-l3zRMsdTPy", @@ -1906,7 +1906,7 @@ "extracted_filters": { "sort": "period_desc", "limit": 20, - "contract": "15/24" + "contract": "24/15" }, "missing_required_filters": [ @@ -1916,8 +1916,8 @@ "account_scope_mode": "preferred", "account_scope_fallback_applied": false, "anchor_type": "contract", - "anchor_value_raw": "15/24", - "anchor_value_resolved": "15/24", + "anchor_value_raw": "24/15", + "anchor_value_resolved": "24/15", "resolver_confidence": "medium", "ambiguity_count": 0, "match_failure_stage": "none", @@ -1960,10 +1960,10 @@ "llm_decomposition_attempted": true, "llm_provider_used": "local", "llm_decomposition_trace_id": null, - "llm_decomposition_effective_message": "банковские операции по договору 15/24", + "llm_decomposition_effective_message": "банковские операции по договору 24/15", "llm_decomposition_reason": "fallback_rule_applied_after_llm_error", "fallback_rule_hit": "bank_operations_contract_rewrite", - "sanitized_user_message": "покажи банковские операции по договору 15/24", + "sanitized_user_message": "покажи банковские операции по договору 24/15", "tool_gate_decision": "run_address_lane", "tool_gate_reason": "address_signal_detected", "answer_structure_v11": null, @@ -1974,7 +1974,7 @@ }, { "number": 13, - "question": "Есть ли долг по договору 15/24 на 2020-07-31", + "question": "Есть ли долг по договору 24/15 на 2020-07-31", "session_key": "single_13", "session_id": "asst-UUVkCb5sCS", "status_code": 200, @@ -1995,7 +1995,7 @@ "llm_provider_used": "local", "fallback_rule_hit": null, "llm_decomposition_trace_id": null, - "llm_decomposition_effective_message": "Есть ли долг по договору 15/24 на 2020-07-31", + "llm_decomposition_effective_message": "Есть ли долг по договору 24/15 на 2020-07-31", "error_text": null, "debug": { "trace_id": "address-Ea84sfq8iH", @@ -2065,7 +2065,7 @@ "extracted_filters": { "sort": "period_desc", "limit": 20, - "contract": "15/24", + "contract": "24/15", "period_from": "2020-07-01", "period_to": "2020-07-31" }, @@ -2077,8 +2077,8 @@ "account_scope_mode": "preferred", "account_scope_fallback_applied": true, "anchor_type": "contract", - "anchor_value_raw": "15/24", - "anchor_value_resolved": "15/24", + "anchor_value_raw": "24/15", + "anchor_value_resolved": "24/15", "resolver_confidence": "medium", "ambiguity_count": 0, "match_failure_stage": "materialized_but_not_anchor_matched", @@ -2121,10 +2121,10 @@ "llm_decomposition_attempted": true, "llm_provider_used": "local", "llm_decomposition_trace_id": null, - "llm_decomposition_effective_message": "Есть ли долг по договору 15/24 на 2020-07-31", + "llm_decomposition_effective_message": "Есть ли долг по договору 24/15 на 2020-07-31", "llm_decomposition_reason": "error:Failed to extract output_text from /responses payload.", "fallback_rule_hit": null, - "sanitized_user_message": "есть ли долг по договору 15/24 на 2020-07-31", + "sanitized_user_message": "есть ли долг по договору 24/15 на 2020-07-31", "tool_gate_decision": "run_address_lane", "tool_gate_reason": "address_signal_detected", "answer_structure_v11": null, @@ -2135,7 +2135,7 @@ }, { "number": 14, - "question": "Покажи операции по договору 15/24 за весь период", + "question": "Покажи операции по договору 24/15 за весь период", "session_key": "single_14", "session_id": "asst-yxnKwYNQ5c", "status_code": 200, @@ -2156,7 +2156,7 @@ "llm_provider_used": "local", "fallback_rule_hit": "bank_operations_contract_all_time_rewrite", "llm_decomposition_trace_id": null, - "llm_decomposition_effective_message": "банковские операции по договору 15/24 за все время", + "llm_decomposition_effective_message": "банковские операции по договору 24/15 за все время", "error_text": null, "debug": { "trace_id": "address-WpACUSyAcA", @@ -2225,7 +2225,7 @@ "extracted_filters": { "sort": "period_desc", "limit": 20, - "contract": "15/24" + "contract": "24/15" }, "missing_required_filters": [ @@ -2235,8 +2235,8 @@ "account_scope_mode": "preferred", "account_scope_fallback_applied": false, "anchor_type": "contract", - "anchor_value_raw": "15/24", - "anchor_value_resolved": "15/24", + "anchor_value_raw": "24/15", + "anchor_value_resolved": "24/15", "resolver_confidence": "medium", "ambiguity_count": 0, "match_failure_stage": "none", @@ -2279,10 +2279,10 @@ "llm_decomposition_attempted": true, "llm_provider_used": "local", "llm_decomposition_trace_id": null, - "llm_decomposition_effective_message": "банковские операции по договору 15/24 за все время", + "llm_decomposition_effective_message": "банковские операции по договору 24/15 за все время", "llm_decomposition_reason": "fallback_rule_applied_after_llm_error", "fallback_rule_hit": "bank_operations_contract_all_time_rewrite", - "sanitized_user_message": "покажи операции по договору 15/24 за весь период", + "sanitized_user_message": "покажи операции по договору 24/15 за весь период", "tool_gate_decision": "run_address_lane", "tool_gate_reason": "address_signal_detected", "answer_structure_v11": null, @@ -3744,7 +3744,7 @@ }, { "number": 24, - "question": "Покажи банковские операции по договору 15/24", + "question": "Покажи банковские операции по договору 24/15", "session_key": "chain_b", "session_id": "asst-NzEwL_Cksq", "status_code": 200, @@ -3765,7 +3765,7 @@ "llm_provider_used": "local", "fallback_rule_hit": "bank_operations_contract_rewrite", "llm_decomposition_trace_id": null, - "llm_decomposition_effective_message": "банковские операции по договору 15/24", + "llm_decomposition_effective_message": "банковские операции по договору 24/15", "error_text": null, "debug": { "trace_id": "address-2xQihRut0-", @@ -3834,7 +3834,7 @@ "extracted_filters": { "sort": "period_desc", "limit": 20, - "contract": "15/24" + "contract": "24/15" }, "missing_required_filters": [ @@ -3844,8 +3844,8 @@ "account_scope_mode": "preferred", "account_scope_fallback_applied": false, "anchor_type": "contract", - "anchor_value_raw": "15/24", - "anchor_value_resolved": "15/24", + "anchor_value_raw": "24/15", + "anchor_value_resolved": "24/15", "resolver_confidence": "medium", "ambiguity_count": 0, "match_failure_stage": "none", @@ -3888,10 +3888,10 @@ "llm_decomposition_attempted": true, "llm_provider_used": "local", "llm_decomposition_trace_id": null, - "llm_decomposition_effective_message": "банковские операции по договору 15/24", + "llm_decomposition_effective_message": "банковские операции по договору 24/15", "llm_decomposition_reason": "fallback_rule_applied_after_llm_error", "fallback_rule_hit": "bank_operations_contract_rewrite", - "sanitized_user_message": "покажи банковские операции по договору 15/24", + "sanitized_user_message": "покажи банковские операции по договору 24/15", "tool_gate_decision": "run_address_lane", "tool_gate_reason": "address_signal_detected", "answer_structure_v11": null, @@ -3999,7 +3999,7 @@ "limit": 20, "period_from": "2020-01-01", "period_to": "2020-12-31", - "contract": "15/24" + "contract": "24/15" }, "missing_required_filters": [ @@ -4009,8 +4009,8 @@ "account_scope_mode": "preferred", "account_scope_fallback_applied": false, "anchor_type": "contract", - "anchor_value_raw": "15/24", - "anchor_value_resolved": "15/24", + "anchor_value_raw": "24/15", + "anchor_value_resolved": "24/15", "resolver_confidence": "medium", "ambiguity_count": 0, "match_failure_stage": "none", @@ -4164,7 +4164,7 @@ "limit": 20, "period_from": "2020-05-01", "period_to": "2020-05-31", - "contract": "15/24" + "contract": "24/15" }, "missing_required_filters": [ @@ -4174,8 +4174,8 @@ "account_scope_mode": "preferred", "account_scope_fallback_applied": false, "anchor_type": "contract", - "anchor_value_raw": "15/24", - "anchor_value_resolved": "15/24", + "anchor_value_raw": "24/15", + "anchor_value_resolved": "24/15", "resolver_confidence": "medium", "ambiguity_count": 0, "match_failure_stage": "none", @@ -5208,7 +5208,7 @@ }, { "number": 33, - "question": "покажи банк опер по дог 15/24 пж", + "question": "покажи банк опер по дог 24/15 пж", "session_key": "single_33", "session_id": "asst-gXTpxnmWpG", "status_code": 200, @@ -5229,7 +5229,7 @@ "llm_provider_used": "local", "fallback_rule_hit": "noise_cleanup", "llm_decomposition_trace_id": null, - "llm_decomposition_effective_message": "покажи банк опер по дог 15/24", + "llm_decomposition_effective_message": "покажи банк опер по дог 24/15", "error_text": null, "debug": { "trace_id": "address-VyJiL2DoTr", @@ -5343,10 +5343,10 @@ "llm_decomposition_attempted": true, "llm_provider_used": "local", "llm_decomposition_trace_id": null, - "llm_decomposition_effective_message": "покажи банк опер по дог 15/24", + "llm_decomposition_effective_message": "покажи банк опер по дог 24/15", "llm_decomposition_reason": "fallback_rule_applied_after_llm_error", "fallback_rule_hit": "noise_cleanup", - "sanitized_user_message": "покажи банк опер по дог 15/24", + "sanitized_user_message": "покажи банк опер по дог 24/15", "tool_gate_decision": "run_address_lane", "tool_gate_reason": "address_signal_detected", "answer_structure_v11": null, diff --git a/docs/ADDRESS/runs/2026-04-02_Address_Full_Live_Run_2026-04-02_08-31-54/failures_only.json b/docs/ADDRESS/runs/2026-04-02_Address_Full_Live_Run_2026-04-02_08-31-54/failures_only.json index 4690a39..d2444ca 100644 --- a/docs/ADDRESS/runs/2026-04-02_Address_Full_Live_Run_2026-04-02_08-31-54/failures_only.json +++ b/docs/ADDRESS/runs/2026-04-02_Address_Full_Live_Run_2026-04-02_08-31-54/failures_only.json @@ -1,7 +1,7 @@ [ { "number": 13, - "question": "Есть ли долг по договору 15/24 на 2020-07-31", + "question": "Есть ли долг по договору 24/15 на 2020-07-31", "session_key": "single_13", "session_id": "asst-2026-04-02_Address_Full_Live_Run_2026-04-02_08-31-54-single_13", "status_code": 200, diff --git a/docs/ADDRESS/runs/2026-04-02_Address_Full_Live_Run_2026-04-02_08-31-54/full_live_results.json b/docs/ADDRESS/runs/2026-04-02_Address_Full_Live_Run_2026-04-02_08-31-54/full_live_results.json index e70a391..f9b49ec 100644 --- a/docs/ADDRESS/runs/2026-04-02_Address_Full_Live_Run_2026-04-02_08-31-54/full_live_results.json +++ b/docs/ADDRESS/runs/2026-04-02_Address_Full_Live_Run_2026-04-02_08-31-54/full_live_results.json @@ -223,7 +223,7 @@ }, { "number": 10, - "question": "Покажи документы по договору 15/24 за 2020", + "question": "Покажи документы по договору 24/15 за 2020", "session_key": "single_10", "session_id": "asst-2026-04-02_Address_Full_Live_Run_2026-04-02_08-31-54-single_10", "status_code": 200, @@ -240,7 +240,7 @@ }, { "number": 11, - "question": "Покажи документы по договору 15/24", + "question": "Покажи документы по договору 24/15", "session_key": "single_11", "session_id": "asst-2026-04-02_Address_Full_Live_Run_2026-04-02_08-31-54-single_11", "status_code": 200, @@ -257,7 +257,7 @@ }, { "number": 12, - "question": "Покажи банковские операции по договору 15/24", + "question": "Покажи банковские операции по договору 24/15", "session_key": "single_12", "session_id": "asst-2026-04-02_Address_Full_Live_Run_2026-04-02_08-31-54-single_12", "status_code": 200, @@ -274,7 +274,7 @@ }, { "number": 13, - "question": "Есть ли долг по договору 15/24 на 2020-07-31", + "question": "Есть ли долг по договору 24/15 на 2020-07-31", "session_key": "single_13", "session_id": "asst-2026-04-02_Address_Full_Live_Run_2026-04-02_08-31-54-single_13", "status_code": 200, @@ -291,7 +291,7 @@ }, { "number": 14, - "question": "Покажи операции по договору 15/24 за весь период", + "question": "Покажи операции по договору 24/15 за весь период", "session_key": "single_14", "session_id": "asst-2026-04-02_Address_Full_Live_Run_2026-04-02_08-31-54-single_14", "status_code": 200, @@ -461,7 +461,7 @@ }, { "number": 24, - "question": "Покажи банковские операции по договору 15/24", + "question": "Покажи банковские операции по договору 24/15", "session_key": "chain_b", "session_id": "asst-2026-04-02_Address_Full_Live_Run_2026-04-02_08-31-54-chain_b", "status_code": 200, @@ -614,7 +614,7 @@ }, { "number": 33, - "question": "покажи банк опер по дог 15/24 пж", + "question": "покажи банк опер по дог 24/15 пж", "session_key": "single_33", "session_id": "asst-2026-04-02_Address_Full_Live_Run_2026-04-02_08-31-54-single_33", "status_code": 200, diff --git a/docs/ADDRESS/runs/2026-04-02_Address_Full_Live_Run_2026-04-02_09-12-32/failures_only.json b/docs/ADDRESS/runs/2026-04-02_Address_Full_Live_Run_2026-04-02_09-12-32/failures_only.json index 5bc0e4c..2b16fa1 100644 --- a/docs/ADDRESS/runs/2026-04-02_Address_Full_Live_Run_2026-04-02_09-12-32/failures_only.json +++ b/docs/ADDRESS/runs/2026-04-02_Address_Full_Live_Run_2026-04-02_09-12-32/failures_only.json @@ -99,7 +99,7 @@ }, { "number": 13, - "question": "Есть ли долг по договору 15/24 на 2020-07-31", + "question": "Есть ли долг по договору 24/15 на 2020-07-31", "session_key": "single_13", "session_id": "asst-2026-04-02_Address_Full_Live_Run_2026-04-02_09-12-32-single_13", "status_code": 200, @@ -289,7 +289,7 @@ }, { "number": 45, - "question": "Есть ли незакрытые позиции по договору 15/24 на 2020-12-31", + "question": "Есть ли незакрытые позиции по договору 24/15 на 2020-12-31", "session_key": "single_45", "session_id": "asst-2026-04-02_Address_Full_Live_Run_2026-04-02_09-12-32-single_45", "status_code": 200, @@ -308,7 +308,7 @@ }, { "number": 46, - "question": "Покажи открытые позиции по договору 15/24", + "question": "Покажи открытые позиции по договору 24/15", "session_key": "single_46", "session_id": "asst-2026-04-02_Address_Full_Live_Run_2026-04-02_09-12-32-single_46", "status_code": 200, @@ -403,7 +403,7 @@ }, { "number": 54, - "question": "а теперь по договору 15/24", + "question": "а теперь по договору 24/15", "session_key": "chain_e", "session_id": "asst-2026-04-02_Address_Full_Live_Run_2026-04-02_09-12-32-chain_e", "status_code": 200, diff --git a/docs/ADDRESS/runs/2026-04-02_Address_Full_Live_Run_2026-04-02_09-12-32/full_live_results.json b/docs/ADDRESS/runs/2026-04-02_Address_Full_Live_Run_2026-04-02_09-12-32/full_live_results.json index c314182..2103a8e 100644 --- a/docs/ADDRESS/runs/2026-04-02_Address_Full_Live_Run_2026-04-02_09-12-32/full_live_results.json +++ b/docs/ADDRESS/runs/2026-04-02_Address_Full_Live_Run_2026-04-02_09-12-32/full_live_results.json @@ -319,7 +319,7 @@ }, { "number": 10, - "question": "Покажи документы по договору 15/24 за 2020", + "question": "Покажи документы по договору 24/15 за 2020", "session_key": "single_10", "session_id": "asst-2026-04-02_Address_Full_Live_Run_2026-04-02_09-12-32-single_10", "status_code": 200, @@ -338,7 +338,7 @@ }, { "number": 11, - "question": "Покажи документы по договору 15/24", + "question": "Покажи документы по договору 24/15", "session_key": "single_11", "session_id": "asst-2026-04-02_Address_Full_Live_Run_2026-04-02_09-12-32-single_11", "status_code": 200, @@ -357,7 +357,7 @@ }, { "number": 12, - "question": "Покажи банковские операции по договору 15/24", + "question": "Покажи банковские операции по договору 24/15", "session_key": "single_12", "session_id": "asst-2026-04-02_Address_Full_Live_Run_2026-04-02_09-12-32-single_12", "status_code": 200, @@ -376,7 +376,7 @@ }, { "number": 13, - "question": "Есть ли долг по договору 15/24 на 2020-07-31", + "question": "Есть ли долг по договору 24/15 на 2020-07-31", "session_key": "single_13", "session_id": "asst-2026-04-02_Address_Full_Live_Run_2026-04-02_09-12-32-single_13", "status_code": 200, @@ -395,7 +395,7 @@ }, { "number": 14, - "question": "Покажи операции по договору 15/24 за весь период", + "question": "Покажи операции по договору 24/15 за весь период", "session_key": "single_14", "session_id": "asst-2026-04-02_Address_Full_Live_Run_2026-04-02_09-12-32-single_14", "status_code": 200, @@ -585,7 +585,7 @@ }, { "number": 24, - "question": "Покажи банковские операции по договору 15/24", + "question": "Покажи банковские операции по договору 24/15", "session_key": "chain_b", "session_id": "asst-2026-04-02_Address_Full_Live_Run_2026-04-02_09-12-32-chain_b", "status_code": 200, @@ -756,7 +756,7 @@ }, { "number": 33, - "question": "покажи банк опер по дог 15/24 пж", + "question": "покажи банк опер по дог 24/15 пж", "session_key": "single_33", "session_id": "asst-2026-04-02_Address_Full_Live_Run_2026-04-02_09-12-32-single_33", "status_code": 200, @@ -984,7 +984,7 @@ }, { "number": 45, - "question": "Есть ли незакрытые позиции по договору 15/24 на 2020-12-31", + "question": "Есть ли незакрытые позиции по договору 24/15 на 2020-12-31", "session_key": "single_45", "session_id": "asst-2026-04-02_Address_Full_Live_Run_2026-04-02_09-12-32-single_45", "status_code": 200, @@ -1003,7 +1003,7 @@ }, { "number": 46, - "question": "Покажи открытые позиции по договору 15/24", + "question": "Покажи открытые позиции по договору 24/15", "session_key": "single_46", "session_id": "asst-2026-04-02_Address_Full_Live_Run_2026-04-02_09-12-32-single_46", "status_code": 200, @@ -1155,7 +1155,7 @@ }, { "number": 54, - "question": "а теперь по договору 15/24", + "question": "а теперь по договору 24/15", "session_key": "chain_e", "session_id": "asst-2026-04-02_Address_Full_Live_Run_2026-04-02_09-12-32-chain_e", "status_code": 200, @@ -1231,7 +1231,7 @@ }, { "number": 58, - "question": "show bank operations by contract 15/24", + "question": "show bank operations by contract 24/15", "session_key": "single_58", "session_id": "asst-2026-04-02_Address_Full_Live_Run_2026-04-02_09-12-32-single_58", "status_code": 200, diff --git a/docs/ADDRESS/runs/2026-04-02_Address_Full_Live_Run_2026-04-02_09-19-16_dedup/failures_only.json b/docs/ADDRESS/runs/2026-04-02_Address_Full_Live_Run_2026-04-02_09-19-16_dedup/failures_only.json index 87cee5c..3e2d75f 100644 --- a/docs/ADDRESS/runs/2026-04-02_Address_Full_Live_Run_2026-04-02_09-19-16_dedup/failures_only.json +++ b/docs/ADDRESS/runs/2026-04-02_Address_Full_Live_Run_2026-04-02_09-19-16_dedup/failures_only.json @@ -61,7 +61,7 @@ }, { "number": 13, - "question": "Есть ли долг по договору 15/24 на 2020-07-31", + "question": "Есть ли долг по договору 24/15 на 2020-07-31", "session_key": "single_13", "session_id": "asst-2026-04-02_Address_Full_Live_Run_2026-04-02_09-19-16_dedup-single_13", "status_code": 200, @@ -213,7 +213,7 @@ }, { "number": 45, - "question": "Есть ли незакрытые позиции по договору 15/24 на 2020-12-31", + "question": "Есть ли незакрытые позиции по договору 24/15 на 2020-12-31", "session_key": "single_45", "session_id": "asst-2026-04-02_Address_Full_Live_Run_2026-04-02_09-19-16_dedup-single_45", "status_code": 200, @@ -232,7 +232,7 @@ }, { "number": 46, - "question": "Покажи открытые позиции по договору 15/24", + "question": "Покажи открытые позиции по договору 24/15", "session_key": "single_46", "session_id": "asst-2026-04-02_Address_Full_Live_Run_2026-04-02_09-19-16_dedup-single_46", "status_code": 200, @@ -327,7 +327,7 @@ }, { "number": 54, - "question": "а теперь по договору 15/24", + "question": "а теперь по договору 24/15", "session_key": "chain_e", "session_id": "asst-2026-04-02_Address_Full_Live_Run_2026-04-02_09-19-16_dedup-chain_e", "status_code": 200, diff --git a/docs/ADDRESS/runs/2026-04-02_Address_Full_Live_Run_2026-04-02_09-19-16_dedup/full_live_results.json b/docs/ADDRESS/runs/2026-04-02_Address_Full_Live_Run_2026-04-02_09-19-16_dedup/full_live_results.json index 05f1723..192ee94 100644 --- a/docs/ADDRESS/runs/2026-04-02_Address_Full_Live_Run_2026-04-02_09-19-16_dedup/full_live_results.json +++ b/docs/ADDRESS/runs/2026-04-02_Address_Full_Live_Run_2026-04-02_09-19-16_dedup/full_live_results.json @@ -264,7 +264,7 @@ }, { "number": 10, - "question": "Покажи документы по договору 15/24 за 2020", + "question": "Покажи документы по договору 24/15 за 2020", "session_key": "single_10", "session_id": "asst-2026-04-02_Address_Full_Live_Run_2026-04-02_09-19-16_dedup-single_10", "status_code": 200, @@ -283,7 +283,7 @@ }, { "number": 11, - "question": "Покажи документы по договору 15/24", + "question": "Покажи документы по договору 24/15", "session_key": "single_11", "session_id": "asst-2026-04-02_Address_Full_Live_Run_2026-04-02_09-19-16_dedup-single_11", "status_code": 200, @@ -302,7 +302,7 @@ }, { "number": 12, - "question": "Покажи банковские операции по договору 15/24", + "question": "Покажи банковские операции по договору 24/15", "session_key": "single_12", "session_id": "asst-2026-04-02_Address_Full_Live_Run_2026-04-02_09-19-16_dedup-single_12", "status_code": 200, @@ -321,7 +321,7 @@ }, { "number": 13, - "question": "Есть ли долг по договору 15/24 на 2020-07-31", + "question": "Есть ли долг по договору 24/15 на 2020-07-31", "session_key": "single_13", "session_id": "asst-2026-04-02_Address_Full_Live_Run_2026-04-02_09-19-16_dedup-single_13", "status_code": 200, @@ -340,7 +340,7 @@ }, { "number": 14, - "question": "Покажи операции по договору 15/24 за весь период", + "question": "Покажи операции по договору 24/15 за весь период", "session_key": "single_14", "session_id": "asst-2026-04-02_Address_Full_Live_Run_2026-04-02_09-19-16_dedup-single_14", "status_code": 200, @@ -530,7 +530,7 @@ }, { "number": 24, - "question": "Покажи банковские операции по договору 15/24", + "question": "Покажи банковские операции по договору 24/15", "session_key": "chain_b", "session_id": "asst-2026-04-02_Address_Full_Live_Run_2026-04-02_09-19-16_dedup-chain_b", "status_code": 200, @@ -701,7 +701,7 @@ }, { "number": 33, - "question": "покажи банк опер по дог 15/24 пж", + "question": "покажи банк опер по дог 24/15 пж", "session_key": "single_33", "session_id": "asst-2026-04-02_Address_Full_Live_Run_2026-04-02_09-19-16_dedup-single_33", "status_code": 200, @@ -929,7 +929,7 @@ }, { "number": 45, - "question": "Есть ли незакрытые позиции по договору 15/24 на 2020-12-31", + "question": "Есть ли незакрытые позиции по договору 24/15 на 2020-12-31", "session_key": "single_45", "session_id": "asst-2026-04-02_Address_Full_Live_Run_2026-04-02_09-19-16_dedup-single_45", "status_code": 200, @@ -948,7 +948,7 @@ }, { "number": 46, - "question": "Покажи открытые позиции по договору 15/24", + "question": "Покажи открытые позиции по договору 24/15", "session_key": "single_46", "session_id": "asst-2026-04-02_Address_Full_Live_Run_2026-04-02_09-19-16_dedup-single_46", "status_code": 200, @@ -1100,7 +1100,7 @@ }, { "number": 54, - "question": "а теперь по договору 15/24", + "question": "а теперь по договору 24/15", "session_key": "chain_e", "session_id": "asst-2026-04-02_Address_Full_Live_Run_2026-04-02_09-19-16_dedup-chain_e", "status_code": 200, @@ -1176,7 +1176,7 @@ }, { "number": 58, - "question": "show bank operations by contract 15/24", + "question": "show bank operations by contract 24/15", "session_key": "single_58", "session_id": "asst-2026-04-02_Address_Full_Live_Run_2026-04-02_09-19-16_dedup-single_58", "status_code": 200, diff --git a/docs/ADDRESS/runs/2026-04-02_Address_Live_Contract_15_24_PostFix_Check_13-34-22/Chat20.txt b/docs/ADDRESS/runs/2026-04-02_Address_Live_Contract_24_15_PostFix_Check_13-34-22/Chat20.txt similarity index 96% rename from docs/ADDRESS/runs/2026-04-02_Address_Live_Contract_15_24_PostFix_Check_13-34-22/Chat20.txt rename to docs/ADDRESS/runs/2026-04-02_Address_Live_Contract_24_15_PostFix_Check_13-34-22/Chat20.txt index b46eabb..f33b9a6 100644 --- a/docs/ADDRESS/runs/2026-04-02_Address_Live_Contract_15_24_PostFix_Check_13-34-22/Chat20.txt +++ b/docs/ADDRESS/runs/2026-04-02_Address_Live_Contract_24_15_PostFix_Check_13-34-22/Chat20.txt @@ -7,7 +7,7 @@ message_id: pending created_at: pending reply_type: n/a -Покажи открытые позиции по договору 15/24 +Покажи открытые позиции по договору 24/15 ## 2. assistant message_id: msg-BYRQm9nr66 @@ -24,7 +24,7 @@ message_id: pending created_at: pending reply_type: n/a -Есть ли незакрытые позиции по договору 15/24 на 2020-12 +Есть ли незакрытые позиции по договору 24/15 на 2020-12 ## 4. assistant message_id: msg-Sy2FeXL7BJ @@ -41,7 +41,7 @@ message_id: pending created_at: pending reply_type: n/a -Есть ли незакрытые позиции по договору 15/24 на 2020-11 +Есть ли незакрытые позиции по договору 24/15 на 2020-11 ## 6. assistant message_id: msg-7wG-3gqDYn @@ -58,7 +58,7 @@ message_id: pending created_at: pending reply_type: n/a -Есть ли незакрытые позиции по договору 15/24 на 2022-12 +Есть ли незакрытые позиции по договору 24/15 на 2022-12 ## 8. assistant message_id: msg-kDLkjnm1OX @@ -75,7 +75,7 @@ message_id: pending created_at: pending reply_type: n/a -Есть ли незакрытые позиции по договору 15/24 на 2014-12-31 +Есть ли незакрытые позиции по договору 24/15 на 2014-12-31 ## 10. assistant message_id: msg-KZ-gXsKJo2 diff --git a/docs/ADDRESS/runs/2026-04-02_Address_Live_Contract_15_24_PostFix_Check_13-34-22/chat20_wave13_raw.json b/docs/ADDRESS/runs/2026-04-02_Address_Live_Contract_24_15_PostFix_Check_13-34-22/chat20_wave13_raw.json similarity index 94% rename from docs/ADDRESS/runs/2026-04-02_Address_Live_Contract_15_24_PostFix_Check_13-34-22/chat20_wave13_raw.json rename to docs/ADDRESS/runs/2026-04-02_Address_Live_Contract_24_15_PostFix_Check_13-34-22/chat20_wave13_raw.json index 4ac7618..cab7b85 100644 --- a/docs/ADDRESS/runs/2026-04-02_Address_Live_Contract_15_24_PostFix_Check_13-34-22/chat20_wave13_raw.json +++ b/docs/ADDRESS/runs/2026-04-02_Address_Live_Contract_24_15_PostFix_Check_13-34-22/chat20_wave13_raw.json @@ -5,7 +5,7 @@ "rows": [ { "case_id": "t01", - "user_message": "Покажи открытые позиции по договору 15/24", + "user_message": "Покажи открытые позиции по договору 24/15", "assistant_reply": "В live-данных по текущему фильтру записи не найдены.\nПричина: по указанному якорю и фильтрам в live-выборке нет строк.\nЧто нужно уточнить: уточните период или снимите часть фильтров.", "reply_type": "partial_coverage", "message_id": "msg-BYRQm9nr66", @@ -54,7 +54,7 @@ "extracted_filters": { "sort": "period_desc", "limit": 20, - "contract": "15/24" + "contract": "24/15" }, "missing_required_filters": [], "selected_recipe": "address_open_items_by_party_or_contract_v1", @@ -62,8 +62,8 @@ "account_scope_mode": "preferred", "account_scope_fallback_applied": true, "anchor_type": "contract", - "anchor_value_raw": "15/24", - "anchor_value_resolved": "15/24", + "anchor_value_raw": "24/15", + "anchor_value_resolved": "24/15", "resolver_confidence": "medium", "ambiguity_count": 0, "match_failure_stage": "materialized_but_not_anchor_matched", @@ -106,10 +106,10 @@ "llm_decomposition_attempted": true, "llm_provider_used": null, "llm_decomposition_trace_id": null, - "llm_decomposition_effective_message": "Покажи открытые позиции по договору 15/24", + "llm_decomposition_effective_message": "Покажи открытые позиции по договору 24/15", "llm_decomposition_reason": "error:OpenAI API key is missing.", "fallback_rule_hit": null, - "sanitized_user_message": "покажи открытые позиции по договору 15/24", + "sanitized_user_message": "покажи открытые позиции по договору 24/15", "tool_gate_decision": "run_address_lane", "tool_gate_reason": "address_mode_classifier_detected", "answer_structure_v11": null, @@ -120,7 +120,7 @@ }, { "case_id": "t02", - "user_message": "Есть ли незакрытые позиции по договору 15/24 на 2020-12", + "user_message": "Есть ли незакрытые позиции по договору 24/15 на 2020-12", "assistant_reply": "В live-данных по текущему фильтру записи не найдены.\nПричина: по указанному якорю и фильтрам в live-выборке нет строк.\nЧто нужно уточнить: уточните период или снимите часть фильтров.", "reply_type": "partial_coverage", "message_id": "msg-Sy2FeXL7BJ", @@ -169,7 +169,7 @@ "extracted_filters": { "sort": "period_desc", "limit": 20, - "contract": "15/24", + "contract": "24/15", "period_from": "2020-12-01", "period_to": "2020-12-31" }, @@ -179,8 +179,8 @@ "account_scope_mode": "preferred", "account_scope_fallback_applied": true, "anchor_type": "contract", - "anchor_value_raw": "15/24", - "anchor_value_resolved": "15/24", + "anchor_value_raw": "24/15", + "anchor_value_resolved": "24/15", "resolver_confidence": "medium", "ambiguity_count": 0, "match_failure_stage": "materialized_but_not_anchor_matched", @@ -223,10 +223,10 @@ "llm_decomposition_attempted": true, "llm_provider_used": null, "llm_decomposition_trace_id": null, - "llm_decomposition_effective_message": "Есть ли незакрытые позиции по договору 15/24 на 2020-12", + "llm_decomposition_effective_message": "Есть ли незакрытые позиции по договору 24/15 на 2020-12", "llm_decomposition_reason": "error:OpenAI API key is missing.", "fallback_rule_hit": null, - "sanitized_user_message": "есть ли незакрытые позиции по договору 15/24 на 2020-12", + "sanitized_user_message": "есть ли незакрытые позиции по договору 24/15 на 2020-12", "tool_gate_decision": "run_address_lane", "tool_gate_reason": "address_mode_classifier_detected", "answer_structure_v11": null, @@ -237,7 +237,7 @@ }, { "case_id": "t03", - "user_message": "Есть ли незакрытые позиции по договору 15/24 на 2020-11", + "user_message": "Есть ли незакрытые позиции по договору 24/15 на 2020-11", "assistant_reply": "В live-данных по текущему фильтру записи не найдены.\nПричина: по указанному якорю и фильтрам в live-выборке нет строк.\nЧто нужно уточнить: уточните период или снимите часть фильтров.", "reply_type": "partial_coverage", "message_id": "msg-7wG-3gqDYn", @@ -286,7 +286,7 @@ "extracted_filters": { "sort": "period_desc", "limit": 20, - "contract": "15/24", + "contract": "24/15", "period_from": "2020-11-01", "period_to": "2020-11-30" }, @@ -296,8 +296,8 @@ "account_scope_mode": "preferred", "account_scope_fallback_applied": true, "anchor_type": "contract", - "anchor_value_raw": "15/24", - "anchor_value_resolved": "15/24", + "anchor_value_raw": "24/15", + "anchor_value_resolved": "24/15", "resolver_confidence": "medium", "ambiguity_count": 0, "match_failure_stage": "materialized_but_not_anchor_matched", @@ -340,10 +340,10 @@ "llm_decomposition_attempted": true, "llm_provider_used": null, "llm_decomposition_trace_id": null, - "llm_decomposition_effective_message": "Есть ли незакрытые позиции по договору 15/24 на 2020-11", + "llm_decomposition_effective_message": "Есть ли незакрытые позиции по договору 24/15 на 2020-11", "llm_decomposition_reason": "error:OpenAI API key is missing.", "fallback_rule_hit": null, - "sanitized_user_message": "есть ли незакрытые позиции по договору 15/24 на 2020-11", + "sanitized_user_message": "есть ли незакрытые позиции по договору 24/15 на 2020-11", "tool_gate_decision": "run_address_lane", "tool_gate_reason": "address_mode_classifier_detected", "answer_structure_v11": null, @@ -354,7 +354,7 @@ }, { "case_id": "t04", - "user_message": "Есть ли незакрытые позиции по договору 15/24 на 2022-12", + "user_message": "Есть ли незакрытые позиции по договору 24/15 на 2022-12", "assistant_reply": "В live-данных по текущему фильтру записи не найдены.\nПричина: по указанному якорю и фильтрам в live-выборке нет строк.\nЧто нужно уточнить: уточните период или снимите часть фильтров.", "reply_type": "partial_coverage", "message_id": "msg-kDLkjnm1OX", @@ -403,7 +403,7 @@ "extracted_filters": { "sort": "period_desc", "limit": 20, - "contract": "15/24", + "contract": "24/15", "period_from": "2022-12-01", "period_to": "2022-12-31" }, @@ -413,8 +413,8 @@ "account_scope_mode": "preferred", "account_scope_fallback_applied": true, "anchor_type": "contract", - "anchor_value_raw": "15/24", - "anchor_value_resolved": "15/24", + "anchor_value_raw": "24/15", + "anchor_value_resolved": "24/15", "resolver_confidence": "medium", "ambiguity_count": 0, "match_failure_stage": "materialized_but_not_anchor_matched", @@ -457,10 +457,10 @@ "llm_decomposition_attempted": true, "llm_provider_used": null, "llm_decomposition_trace_id": null, - "llm_decomposition_effective_message": "Есть ли незакрытые позиции по договору 15/24 на 2022-12", + "llm_decomposition_effective_message": "Есть ли незакрытые позиции по договору 24/15 на 2022-12", "llm_decomposition_reason": "error:OpenAI API key is missing.", "fallback_rule_hit": null, - "sanitized_user_message": "есть ли незакрытые позиции по договору 15/24 на 2022-12", + "sanitized_user_message": "есть ли незакрытые позиции по договору 24/15 на 2022-12", "tool_gate_decision": "run_address_lane", "tool_gate_reason": "address_mode_classifier_detected", "answer_structure_v11": null, @@ -471,7 +471,7 @@ }, { "case_id": "t05", - "user_message": "Есть ли незакрытые позиции по договору 15/24 на 2014-12-31", + "user_message": "Есть ли незакрытые позиции по договору 24/15 на 2014-12-31", "assistant_reply": "В live-данных по текущему фильтру записи не найдены.\nПричина: по указанному якорю и фильтрам в live-выборке нет строк.\nЧто нужно уточнить: уточните период или снимите часть фильтров.", "reply_type": "partial_coverage", "message_id": "msg-KZ-gXsKJo2", @@ -520,7 +520,7 @@ "extracted_filters": { "sort": "period_desc", "limit": 20, - "contract": "15/24", + "contract": "24/15", "as_of_date": "2014-12-31" }, "missing_required_filters": [], @@ -529,8 +529,8 @@ "account_scope_mode": "preferred", "account_scope_fallback_applied": false, "anchor_type": "contract", - "anchor_value_raw": "15/24", - "anchor_value_resolved": "15/24", + "anchor_value_raw": "24/15", + "anchor_value_resolved": "24/15", "resolver_confidence": "medium", "ambiguity_count": 0, "match_failure_stage": "materialized_but_not_anchor_matched", @@ -573,10 +573,10 @@ "llm_decomposition_attempted": true, "llm_provider_used": null, "llm_decomposition_trace_id": null, - "llm_decomposition_effective_message": "Есть ли незакрытые позиции по договору 15/24 на 2014-12-31", + "llm_decomposition_effective_message": "Есть ли незакрытые позиции по договору 24/15 на 2014-12-31", "llm_decomposition_reason": "error:OpenAI API key is missing.", "fallback_rule_hit": null, - "sanitized_user_message": "есть ли незакрытые позиции по договору 15/24 на 2014-12-31", + "sanitized_user_message": "есть ли незакрытые позиции по договору 24/15 на 2014-12-31", "tool_gate_decision": "run_address_lane", "tool_gate_reason": "address_mode_classifier_detected", "answer_structure_v11": null, diff --git a/docs/ADDRESS/runs/2026-04-02_Address_Live_Contract_15_24_PostFix_Check_13-34-22/prompt_dialogs/chat20_prompts.md b/docs/ADDRESS/runs/2026-04-02_Address_Live_Contract_24_15_PostFix_Check_13-34-22/prompt_dialogs/chat20_prompts.md similarity index 70% rename from docs/ADDRESS/runs/2026-04-02_Address_Live_Contract_15_24_PostFix_Check_13-34-22/prompt_dialogs/chat20_prompts.md rename to docs/ADDRESS/runs/2026-04-02_Address_Live_Contract_24_15_PostFix_Check_13-34-22/prompt_dialogs/chat20_prompts.md index 0798a4a..3b8d251 100644 --- a/docs/ADDRESS/runs/2026-04-02_Address_Live_Contract_15_24_PostFix_Check_13-34-22/prompt_dialogs/chat20_prompts.md +++ b/docs/ADDRESS/runs/2026-04-02_Address_Live_Contract_24_15_PostFix_Check_13-34-22/prompt_dialogs/chat20_prompts.md @@ -1,9 +1,9 @@ -1. Покажи открытые позиции по договору 15/24 +1. Покажи открытые позиции по договору 24/15 -2. Есть ли незакрытые позиции по договору 15/24 на 2020-12 +2. Есть ли незакрытые позиции по договору 24/15 на 2020-12 -3. Есть ли незакрытые позиции по договору 15/24 на 2020-11 +3. Есть ли незакрытые позиции по договору 24/15 на 2020-11 -4. Есть ли незакрытые позиции по договору 15/24 на 2022-12 +4. Есть ли незакрытые позиции по договору 24/15 на 2022-12 -5. Есть ли незакрытые позиции по договору 15/24 на 2014-12-31 +5. Есть ли незакрытые позиции по договору 24/15 на 2014-12-31 diff --git a/docs/ADDRESS/runs/2026-04-02_Address_Live_Contract_15_24_PostFix_Check_13-34-22/Чат20.txt b/docs/ADDRESS/runs/2026-04-02_Address_Live_Contract_24_15_PostFix_Check_13-34-22/Чат20.txt similarity index 96% rename from docs/ADDRESS/runs/2026-04-02_Address_Live_Contract_15_24_PostFix_Check_13-34-22/Чат20.txt rename to docs/ADDRESS/runs/2026-04-02_Address_Live_Contract_24_15_PostFix_Check_13-34-22/Чат20.txt index b46eabb..f33b9a6 100644 --- a/docs/ADDRESS/runs/2026-04-02_Address_Live_Contract_15_24_PostFix_Check_13-34-22/Чат20.txt +++ b/docs/ADDRESS/runs/2026-04-02_Address_Live_Contract_24_15_PostFix_Check_13-34-22/Чат20.txt @@ -7,7 +7,7 @@ message_id: pending created_at: pending reply_type: n/a -Покажи открытые позиции по договору 15/24 +Покажи открытые позиции по договору 24/15 ## 2. assistant message_id: msg-BYRQm9nr66 @@ -24,7 +24,7 @@ message_id: pending created_at: pending reply_type: n/a -Есть ли незакрытые позиции по договору 15/24 на 2020-12 +Есть ли незакрытые позиции по договору 24/15 на 2020-12 ## 4. assistant message_id: msg-Sy2FeXL7BJ @@ -41,7 +41,7 @@ message_id: pending created_at: pending reply_type: n/a -Есть ли незакрытые позиции по договору 15/24 на 2020-11 +Есть ли незакрытые позиции по договору 24/15 на 2020-11 ## 6. assistant message_id: msg-7wG-3gqDYn @@ -58,7 +58,7 @@ message_id: pending created_at: pending reply_type: n/a -Есть ли незакрытые позиции по договору 15/24 на 2022-12 +Есть ли незакрытые позиции по договору 24/15 на 2022-12 ## 8. assistant message_id: msg-kDLkjnm1OX @@ -75,7 +75,7 @@ message_id: pending created_at: pending reply_type: n/a -Есть ли незакрытые позиции по договору 15/24 на 2014-12-31 +Есть ли незакрытые позиции по договору 24/15 на 2014-12-31 ## 10. assistant message_id: msg-KZ-gXsKJo2 diff --git a/docs/ADDRESS/runs/2026-04-02_Address_Slang_Live_Stress_2026-04-02_09-37-14/failures_only.json b/docs/ADDRESS/runs/2026-04-02_Address_Slang_Live_Stress_2026-04-02_09-37-14/failures_only.json index 7fba01c..cce9e9b 100644 --- a/docs/ADDRESS/runs/2026-04-02_Address_Slang_Live_Stress_2026-04-02_09-37-14/failures_only.json +++ b/docs/ADDRESS/runs/2026-04-02_Address_Slang_Live_Stress_2026-04-02_09-37-14/failures_only.json @@ -272,7 +272,7 @@ { "index": 45, "id": "S045", - "question": "какие документы по контракту 15/24", + "question": "какие документы по контракту 24/15", "session": null, "session_id": "asst-2026-04-02_Address_Slang_Live_Stress_2026-04-02_09-37-14-s045", "status_code": 200, @@ -299,7 +299,7 @@ { "index": 50, "id": "S050", - "question": "покеж документы по 15/24", + "question": "покеж документы по 24/15", "session": null, "session_id": "asst-2026-04-02_Address_Slang_Live_Stress_2026-04-02_09-37-14-s050", "status_code": 200, diff --git a/docs/ADDRESS/runs/2026-04-02_Address_Slang_Live_Stress_2026-04-02_09-37-14/full_live_results.json b/docs/ADDRESS/runs/2026-04-02_Address_Slang_Live_Stress_2026-04-02_09-37-14/full_live_results.json index 1c19925..7938b9a 100644 --- a/docs/ADDRESS/runs/2026-04-02_Address_Slang_Live_Stress_2026-04-02_09-37-14/full_live_results.json +++ b/docs/ADDRESS/runs/2026-04-02_Address_Slang_Live_Stress_2026-04-02_09-37-14/full_live_results.json @@ -1193,7 +1193,7 @@ { "index": 43, "id": "S043", - "question": "покажи документы по договору 15/24 за 2020", + "question": "покажи документы по договору 24/15 за 2020", "session": null, "session_id": "asst-2026-04-02_Address_Slang_Live_Stress_2026-04-02_09-37-14-s043", "status_code": 200, @@ -1220,7 +1220,7 @@ { "index": 44, "id": "S044", - "question": "доки по дог. 15/24 за 2020", + "question": "доки по дог. 24/15 за 2020", "session": null, "session_id": "asst-2026-04-02_Address_Slang_Live_Stress_2026-04-02_09-37-14-s044", "status_code": 200, @@ -1247,7 +1247,7 @@ { "index": 45, "id": "S045", - "question": "какие документы по контракту 15/24", + "question": "какие документы по контракту 24/15", "session": null, "session_id": "asst-2026-04-02_Address_Slang_Live_Stress_2026-04-02_09-37-14-s045", "status_code": 200, @@ -1274,7 +1274,7 @@ { "index": 46, "id": "S046", - "question": "docs by contract 15/24 year 2020", + "question": "docs by contract 24/15 year 2020", "session": null, "session_id": "asst-2026-04-02_Address_Slang_Live_Stress_2026-04-02_09-37-14-s046", "status_code": 200, @@ -1301,7 +1301,7 @@ { "index": 47, "id": "S047", - "question": "бля, покажи по договору 15/24 доки", + "question": "бля, покажи по договору 24/15 доки", "session": null, "session_id": "asst-2026-04-02_Address_Slang_Live_Stress_2026-04-02_09-37-14-s047", "status_code": 200, @@ -1328,7 +1328,7 @@ { "index": 48, "id": "S048", - "question": "договор 15/24 документы", + "question": "договор 24/15 документы", "session": null, "session_id": "asst-2026-04-02_Address_Slang_Live_Stress_2026-04-02_09-37-14-s048", "status_code": 200, @@ -1355,7 +1355,7 @@ { "index": 49, "id": "S049", - "question": "плс документы договор №15/24", + "question": "плс документы договор №24/15", "session": null, "session_id": "asst-2026-04-02_Address_Slang_Live_Stress_2026-04-02_09-37-14-s049", "status_code": 200, @@ -1382,7 +1382,7 @@ { "index": 50, "id": "S050", - "question": "покеж документы по 15/24", + "question": "покеж документы по 24/15", "session": null, "session_id": "asst-2026-04-02_Address_Slang_Live_Stress_2026-04-02_09-37-14-s050", "status_code": 200, @@ -1409,7 +1409,7 @@ { "index": 51, "id": "S051", - "question": "банковские операции по договору 15/24", + "question": "банковские операции по договору 24/15", "session": null, "session_id": "asst-2026-04-02_Address_Slang_Live_Stress_2026-04-02_09-37-14-s051", "status_code": 200, @@ -1436,7 +1436,7 @@ { "index": 52, "id": "S052", - "question": "платежи по договору 15/24", + "question": "платежи по договору 24/15", "session": null, "session_id": "asst-2026-04-02_Address_Slang_Live_Stress_2026-04-02_09-37-14-s052", "status_code": 200, @@ -1463,7 +1463,7 @@ { "index": 53, "id": "S053", - "question": "выписка по договору 15/24", + "question": "выписка по договору 24/15", "session": null, "session_id": "asst-2026-04-02_Address_Slang_Live_Stress_2026-04-02_09-37-14-s053", "status_code": 200, @@ -1490,7 +1490,7 @@ { "index": 54, "id": "S054", - "question": "bank ops by contract 15/24", + "question": "bank ops by contract 24/15", "session": null, "session_id": "asst-2026-04-02_Address_Slang_Live_Stress_2026-04-02_09-37-14-s054", "status_code": 200, @@ -1517,7 +1517,7 @@ { "index": 55, "id": "S055", - "question": "ёпт, покажи банк операции по дог 15/24", + "question": "ёпт, покажи банк операции по дог 24/15", "session": null, "session_id": "asst-2026-04-02_Address_Slang_Live_Stress_2026-04-02_09-37-14-s055", "status_code": 200, @@ -1544,7 +1544,7 @@ { "index": 56, "id": "S056", - "question": "по контракту 15/24 платежки", + "question": "по контракту 24/15 платежки", "session": null, "session_id": "asst-2026-04-02_Address_Slang_Live_Stress_2026-04-02_09-37-14-s056", "status_code": 200, diff --git a/docs/ADDRESS/runs/2026-04-02_Address_Slang_Live_Stress_2026-04-02_09-48-35/full_live_results.json b/docs/ADDRESS/runs/2026-04-02_Address_Slang_Live_Stress_2026-04-02_09-48-35/full_live_results.json index 7b533e0..eb2eba8 100644 --- a/docs/ADDRESS/runs/2026-04-02_Address_Slang_Live_Stress_2026-04-02_09-48-35/full_live_results.json +++ b/docs/ADDRESS/runs/2026-04-02_Address_Slang_Live_Stress_2026-04-02_09-48-35/full_live_results.json @@ -1190,7 +1190,7 @@ { "index": 43, "id": "S043", - "question": "покажи документы по договору 15/24 за 2020", + "question": "покажи документы по договору 24/15 за 2020", "session": null, "session_id": "asst-2026-04-02_Address_Slang_Live_Stress_2026-04-02_09-48-35-s043", "status_code": 200, @@ -1217,7 +1217,7 @@ { "index": 44, "id": "S044", - "question": "доки по дог. 15/24 за 2020", + "question": "доки по дог. 24/15 за 2020", "session": null, "session_id": "asst-2026-04-02_Address_Slang_Live_Stress_2026-04-02_09-48-35-s044", "status_code": 200, @@ -1244,7 +1244,7 @@ { "index": 45, "id": "S045", - "question": "какие документы по контракту 15/24", + "question": "какие документы по контракту 24/15", "session": null, "session_id": "asst-2026-04-02_Address_Slang_Live_Stress_2026-04-02_09-48-35-s045", "status_code": 200, @@ -1271,7 +1271,7 @@ { "index": 46, "id": "S046", - "question": "docs by contract 15/24 year 2020", + "question": "docs by contract 24/15 year 2020", "session": null, "session_id": "asst-2026-04-02_Address_Slang_Live_Stress_2026-04-02_09-48-35-s046", "status_code": 200, @@ -1298,7 +1298,7 @@ { "index": 47, "id": "S047", - "question": "бля, покажи по договору 15/24 доки", + "question": "бля, покажи по договору 24/15 доки", "session": null, "session_id": "asst-2026-04-02_Address_Slang_Live_Stress_2026-04-02_09-48-35-s047", "status_code": 200, @@ -1325,7 +1325,7 @@ { "index": 48, "id": "S048", - "question": "договор 15/24 документы", + "question": "договор 24/15 документы", "session": null, "session_id": "asst-2026-04-02_Address_Slang_Live_Stress_2026-04-02_09-48-35-s048", "status_code": 200, @@ -1352,7 +1352,7 @@ { "index": 49, "id": "S049", - "question": "плс документы договор №15/24", + "question": "плс документы договор №24/15", "session": null, "session_id": "asst-2026-04-02_Address_Slang_Live_Stress_2026-04-02_09-48-35-s049", "status_code": 200, @@ -1379,7 +1379,7 @@ { "index": 50, "id": "S050", - "question": "покеж документы по 15/24", + "question": "покеж документы по 24/15", "session": null, "session_id": "asst-2026-04-02_Address_Slang_Live_Stress_2026-04-02_09-48-35-s050", "status_code": 200, @@ -1406,7 +1406,7 @@ { "index": 51, "id": "S051", - "question": "банковские операции по договору 15/24", + "question": "банковские операции по договору 24/15", "session": null, "session_id": "asst-2026-04-02_Address_Slang_Live_Stress_2026-04-02_09-48-35-s051", "status_code": 200, @@ -1433,7 +1433,7 @@ { "index": 52, "id": "S052", - "question": "платежи по договору 15/24", + "question": "платежи по договору 24/15", "session": null, "session_id": "asst-2026-04-02_Address_Slang_Live_Stress_2026-04-02_09-48-35-s052", "status_code": 200, @@ -1460,7 +1460,7 @@ { "index": 53, "id": "S053", - "question": "выписка по договору 15/24", + "question": "выписка по договору 24/15", "session": null, "session_id": "asst-2026-04-02_Address_Slang_Live_Stress_2026-04-02_09-48-35-s053", "status_code": 200, @@ -1487,7 +1487,7 @@ { "index": 54, "id": "S054", - "question": "bank ops by contract 15/24", + "question": "bank ops by contract 24/15", "session": null, "session_id": "asst-2026-04-02_Address_Slang_Live_Stress_2026-04-02_09-48-35-s054", "status_code": 200, @@ -1514,7 +1514,7 @@ { "index": 55, "id": "S055", - "question": "ёпт, покажи банк операции по дог 15/24", + "question": "ёпт, покажи банк операции по дог 24/15", "session": null, "session_id": "asst-2026-04-02_Address_Slang_Live_Stress_2026-04-02_09-48-35-s055", "status_code": 200, @@ -1541,7 +1541,7 @@ { "index": 56, "id": "S056", - "question": "по контракту 15/24 платежки", + "question": "по контракту 24/15 платежки", "session": null, "session_id": "asst-2026-04-02_Address_Slang_Live_Stress_2026-04-02_09-48-35-s056", "status_code": 200, diff --git a/docs/ADDRESS/runs/2026-04-02_Address_Slang_Live_Stress_2026-04-02_09-55-53/full_live_results.json b/docs/ADDRESS/runs/2026-04-02_Address_Slang_Live_Stress_2026-04-02_09-55-53/full_live_results.json index 7aee601..74f236b 100644 --- a/docs/ADDRESS/runs/2026-04-02_Address_Slang_Live_Stress_2026-04-02_09-55-53/full_live_results.json +++ b/docs/ADDRESS/runs/2026-04-02_Address_Slang_Live_Stress_2026-04-02_09-55-53/full_live_results.json @@ -1189,7 +1189,7 @@ { "index": 43, "id": "S043", - "question": "покажи документы по договору 15/24 за 2020", + "question": "покажи документы по договору 24/15 за 2020", "session": null, "session_id": "asst-2026-04-02_Address_Slang_Live_Stress_2026-04-02_09-55-53-s043", "status_code": 200, @@ -1216,7 +1216,7 @@ { "index": 44, "id": "S044", - "question": "доки по дог. 15/24 за 2020", + "question": "доки по дог. 24/15 за 2020", "session": null, "session_id": "asst-2026-04-02_Address_Slang_Live_Stress_2026-04-02_09-55-53-s044", "status_code": 200, @@ -1243,7 +1243,7 @@ { "index": 45, "id": "S045", - "question": "какие документы по контракту 15/24", + "question": "какие документы по контракту 24/15", "session": null, "session_id": "asst-2026-04-02_Address_Slang_Live_Stress_2026-04-02_09-55-53-s045", "status_code": 200, @@ -1270,7 +1270,7 @@ { "index": 46, "id": "S046", - "question": "docs by contract 15/24 year 2020", + "question": "docs by contract 24/15 year 2020", "session": null, "session_id": "asst-2026-04-02_Address_Slang_Live_Stress_2026-04-02_09-55-53-s046", "status_code": 200, @@ -1297,7 +1297,7 @@ { "index": 47, "id": "S047", - "question": "бля, покажи по договору 15/24 доки", + "question": "бля, покажи по договору 24/15 доки", "session": null, "session_id": "asst-2026-04-02_Address_Slang_Live_Stress_2026-04-02_09-55-53-s047", "status_code": 200, @@ -1324,7 +1324,7 @@ { "index": 48, "id": "S048", - "question": "договор 15/24 документы", + "question": "договор 24/15 документы", "session": null, "session_id": "asst-2026-04-02_Address_Slang_Live_Stress_2026-04-02_09-55-53-s048", "status_code": 200, @@ -1351,7 +1351,7 @@ { "index": 49, "id": "S049", - "question": "плс документы договор №15/24", + "question": "плс документы договор №24/15", "session": null, "session_id": "asst-2026-04-02_Address_Slang_Live_Stress_2026-04-02_09-55-53-s049", "status_code": 200, @@ -1378,7 +1378,7 @@ { "index": 50, "id": "S050", - "question": "покеж документы по 15/24", + "question": "покеж документы по 24/15", "session": null, "session_id": "asst-2026-04-02_Address_Slang_Live_Stress_2026-04-02_09-55-53-s050", "status_code": 200, @@ -1405,7 +1405,7 @@ { "index": 51, "id": "S051", - "question": "банковские операции по договору 15/24", + "question": "банковские операции по договору 24/15", "session": null, "session_id": "asst-2026-04-02_Address_Slang_Live_Stress_2026-04-02_09-55-53-s051", "status_code": 200, @@ -1432,7 +1432,7 @@ { "index": 52, "id": "S052", - "question": "платежи по договору 15/24", + "question": "платежи по договору 24/15", "session": null, "session_id": "asst-2026-04-02_Address_Slang_Live_Stress_2026-04-02_09-55-53-s052", "status_code": 200, @@ -1459,7 +1459,7 @@ { "index": 53, "id": "S053", - "question": "выписка по договору 15/24", + "question": "выписка по договору 24/15", "session": null, "session_id": "asst-2026-04-02_Address_Slang_Live_Stress_2026-04-02_09-55-53-s053", "status_code": 200, @@ -1486,7 +1486,7 @@ { "index": 54, "id": "S054", - "question": "bank ops by contract 15/24", + "question": "bank ops by contract 24/15", "session": null, "session_id": "asst-2026-04-02_Address_Slang_Live_Stress_2026-04-02_09-55-53-s054", "status_code": 200, @@ -1513,7 +1513,7 @@ { "index": 55, "id": "S055", - "question": "ёпт, покажи банк операции по дог 15/24", + "question": "ёпт, покажи банк операции по дог 24/15", "session": null, "session_id": "asst-2026-04-02_Address_Slang_Live_Stress_2026-04-02_09-55-53-s055", "status_code": 200, @@ -1540,7 +1540,7 @@ { "index": 56, "id": "S056", - "question": "по контракту 15/24 платежки", + "question": "по контракту 24/15 платежки", "session": null, "session_id": "asst-2026-04-02_Address_Slang_Live_Stress_2026-04-02_09-55-53-s056", "status_code": 200, diff --git a/docs/ADDRESS/runs/2026-04-02_Address_Slang_Live_Stress_2026-04-02_10-07-46/full_live_results.json b/docs/ADDRESS/runs/2026-04-02_Address_Slang_Live_Stress_2026-04-02_10-07-46/full_live_results.json index b5d1123..2bff6c8 100644 --- a/docs/ADDRESS/runs/2026-04-02_Address_Slang_Live_Stress_2026-04-02_10-07-46/full_live_results.json +++ b/docs/ADDRESS/runs/2026-04-02_Address_Slang_Live_Stress_2026-04-02_10-07-46/full_live_results.json @@ -1191,7 +1191,7 @@ { "index": 43, "id": "S043", - "question": "покажи документы по договору 15/24 за 2020", + "question": "покажи документы по договору 24/15 за 2020", "session": null, "session_id": "asst-2026-04-02_Address_Slang_Live_Stress_2026-04-02_10-07-46-s043", "status_code": 200, @@ -1218,7 +1218,7 @@ { "index": 44, "id": "S044", - "question": "доки по дог. 15/24 за 2020", + "question": "доки по дог. 24/15 за 2020", "session": null, "session_id": "asst-2026-04-02_Address_Slang_Live_Stress_2026-04-02_10-07-46-s044", "status_code": 200, @@ -1245,7 +1245,7 @@ { "index": 45, "id": "S045", - "question": "какие документы по контракту 15/24", + "question": "какие документы по контракту 24/15", "session": null, "session_id": "asst-2026-04-02_Address_Slang_Live_Stress_2026-04-02_10-07-46-s045", "status_code": 200, @@ -1272,7 +1272,7 @@ { "index": 46, "id": "S046", - "question": "docs by contract 15/24 year 2020", + "question": "docs by contract 24/15 year 2020", "session": null, "session_id": "asst-2026-04-02_Address_Slang_Live_Stress_2026-04-02_10-07-46-s046", "status_code": 200, @@ -1299,7 +1299,7 @@ { "index": 47, "id": "S047", - "question": "бля, покажи по договору 15/24 доки", + "question": "бля, покажи по договору 24/15 доки", "session": null, "session_id": "asst-2026-04-02_Address_Slang_Live_Stress_2026-04-02_10-07-46-s047", "status_code": 200, @@ -1326,7 +1326,7 @@ { "index": 48, "id": "S048", - "question": "договор 15/24 документы", + "question": "договор 24/15 документы", "session": null, "session_id": "asst-2026-04-02_Address_Slang_Live_Stress_2026-04-02_10-07-46-s048", "status_code": 200, @@ -1353,7 +1353,7 @@ { "index": 49, "id": "S049", - "question": "плс документы договор №15/24", + "question": "плс документы договор №24/15", "session": null, "session_id": "asst-2026-04-02_Address_Slang_Live_Stress_2026-04-02_10-07-46-s049", "status_code": 200, @@ -1380,7 +1380,7 @@ { "index": 50, "id": "S050", - "question": "покеж документы по 15/24", + "question": "покеж документы по 24/15", "session": null, "session_id": "asst-2026-04-02_Address_Slang_Live_Stress_2026-04-02_10-07-46-s050", "status_code": 200, @@ -1407,7 +1407,7 @@ { "index": 51, "id": "S051", - "question": "банковские операции по договору 15/24", + "question": "банковские операции по договору 24/15", "session": null, "session_id": "asst-2026-04-02_Address_Slang_Live_Stress_2026-04-02_10-07-46-s051", "status_code": 200, @@ -1434,7 +1434,7 @@ { "index": 52, "id": "S052", - "question": "платежи по договору 15/24", + "question": "платежи по договору 24/15", "session": null, "session_id": "asst-2026-04-02_Address_Slang_Live_Stress_2026-04-02_10-07-46-s052", "status_code": 200, @@ -1461,7 +1461,7 @@ { "index": 53, "id": "S053", - "question": "выписка по договору 15/24", + "question": "выписка по договору 24/15", "session": null, "session_id": "asst-2026-04-02_Address_Slang_Live_Stress_2026-04-02_10-07-46-s053", "status_code": 200, @@ -1488,7 +1488,7 @@ { "index": 54, "id": "S054", - "question": "bank ops by contract 15/24", + "question": "bank ops by contract 24/15", "session": null, "session_id": "asst-2026-04-02_Address_Slang_Live_Stress_2026-04-02_10-07-46-s054", "status_code": 200, @@ -1515,7 +1515,7 @@ { "index": 55, "id": "S055", - "question": "ёпт, покажи банк операции по дог 15/24", + "question": "ёпт, покажи банк операции по дог 24/15", "session": null, "session_id": "asst-2026-04-02_Address_Slang_Live_Stress_2026-04-02_10-07-46-s055", "status_code": 200, @@ -1542,7 +1542,7 @@ { "index": 56, "id": "S056", - "question": "по контракту 15/24 платежки", + "question": "по контракту 24/15 платежки", "session": null, "session_id": "asst-2026-04-02_Address_Slang_Live_Stress_2026-04-02_10-07-46-s056", "status_code": 200, diff --git a/docs/ADDRESS/runs/2026-04-02_Address_Slang_Live_Stress_2026-04-02_10-13-57/full_live_results.json b/docs/ADDRESS/runs/2026-04-02_Address_Slang_Live_Stress_2026-04-02_10-13-57/full_live_results.json index 3cf7c81..83ce8b6 100644 --- a/docs/ADDRESS/runs/2026-04-02_Address_Slang_Live_Stress_2026-04-02_10-13-57/full_live_results.json +++ b/docs/ADDRESS/runs/2026-04-02_Address_Slang_Live_Stress_2026-04-02_10-13-57/full_live_results.json @@ -815,7 +815,7 @@ { "index": 29, "id": "X029", - "question": "доки по договору 15/24 за 2020", + "question": "доки по договору 24/15 за 2020", "session": null, "session_id": "asst-2026-04-02_Address_Slang_Live_Stress_2026-04-02_10-13-57-x029", "status_code": 200, @@ -842,7 +842,7 @@ { "index": 30, "id": "X030", - "question": "покажи документы контракт 15/24", + "question": "покажи документы контракт 24/15", "session": null, "session_id": "asst-2026-04-02_Address_Slang_Live_Stress_2026-04-02_10-13-57-x030", "status_code": 200, @@ -869,7 +869,7 @@ { "index": 31, "id": "X031", - "question": "docs by contract 15/24 2020", + "question": "docs by contract 24/15 2020", "session": null, "session_id": "asst-2026-04-02_Address_Slang_Live_Stress_2026-04-02_10-13-57-x031", "status_code": 200, @@ -896,7 +896,7 @@ { "index": 32, "id": "X032", - "question": "по дог 15/24 какие документы", + "question": "по дог 24/15 какие документы", "session": null, "session_id": "asst-2026-04-02_Address_Slang_Live_Stress_2026-04-02_10-13-57-x032", "status_code": 200, @@ -923,7 +923,7 @@ { "index": 33, "id": "X033", - "question": "договор 15/24 выведи доки", + "question": "договор 24/15 выведи доки", "session": null, "session_id": "asst-2026-04-02_Address_Slang_Live_Stress_2026-04-02_10-13-57-x033", "status_code": 200, @@ -950,7 +950,7 @@ { "index": 34, "id": "X034", - "question": "нах покажи документы по 15/24", + "question": "нах покажи документы по 24/15", "session": null, "session_id": "asst-2026-04-02_Address_Slang_Live_Stress_2026-04-02_10-13-57-x034", "status_code": 200, @@ -977,7 +977,7 @@ { "index": 35, "id": "X035", - "question": "банк операции по договору 15/24", + "question": "банк операции по договору 24/15", "session": null, "session_id": "asst-2026-04-02_Address_Slang_Live_Stress_2026-04-02_10-13-57-x035", "status_code": 200, @@ -1004,7 +1004,7 @@ { "index": 36, "id": "X036", - "question": "платежки по дог 15/24", + "question": "платежки по дог 24/15", "session": null, "session_id": "asst-2026-04-02_Address_Slang_Live_Stress_2026-04-02_10-13-57-x036", "status_code": 200, @@ -1031,7 +1031,7 @@ { "index": 37, "id": "X037", - "question": "выписка по контракту 15/24", + "question": "выписка по контракту 24/15", "session": null, "session_id": "asst-2026-04-02_Address_Slang_Live_Stress_2026-04-02_10-13-57-x037", "status_code": 200, @@ -1058,7 +1058,7 @@ { "index": 38, "id": "X038", - "question": "bank ops by contract 15/24", + "question": "bank ops by contract 24/15", "session": null, "session_id": "asst-2026-04-02_Address_Slang_Live_Stress_2026-04-02_10-13-57-x038", "status_code": 200, @@ -1085,7 +1085,7 @@ { "index": 39, "id": "X039", - "question": "покажи банк опер по дог 15/24 пж", + "question": "покажи банк опер по дог 24/15 пж", "session": null, "session_id": "asst-2026-04-02_Address_Slang_Live_Stress_2026-04-02_10-13-57-x039", "status_code": 200, @@ -1112,7 +1112,7 @@ { "index": 40, "id": "X040", - "question": "епт транзакции договор 15/24", + "question": "епт транзакции договор 24/15", "session": null, "session_id": "asst-2026-04-02_Address_Slang_Live_Stress_2026-04-02_10-13-57-x040", "status_code": 200, diff --git a/docs/ADDRESS/runs/2026-04-02_Address_Slang_Live_Stress_2026-04-02_10-20-51/full_live_results.json b/docs/ADDRESS/runs/2026-04-02_Address_Slang_Live_Stress_2026-04-02_10-20-51/full_live_results.json index eb2e1ed..b598ce7 100644 --- a/docs/ADDRESS/runs/2026-04-02_Address_Slang_Live_Stress_2026-04-02_10-20-51/full_live_results.json +++ b/docs/ADDRESS/runs/2026-04-02_Address_Slang_Live_Stress_2026-04-02_10-20-51/full_live_results.json @@ -813,7 +813,7 @@ { "index": 29, "id": "X029", - "question": "доки по договору 15/24 за 2020", + "question": "доки по договору 24/15 за 2020", "session": null, "session_id": "asst-2026-04-02_Address_Slang_Live_Stress_2026-04-02_10-20-51-x029", "status_code": 200, @@ -840,7 +840,7 @@ { "index": 30, "id": "X030", - "question": "покажи документы контракт 15/24", + "question": "покажи документы контракт 24/15", "session": null, "session_id": "asst-2026-04-02_Address_Slang_Live_Stress_2026-04-02_10-20-51-x030", "status_code": 200, @@ -867,7 +867,7 @@ { "index": 31, "id": "X031", - "question": "docs by contract 15/24 2020", + "question": "docs by contract 24/15 2020", "session": null, "session_id": "asst-2026-04-02_Address_Slang_Live_Stress_2026-04-02_10-20-51-x031", "status_code": 200, @@ -894,7 +894,7 @@ { "index": 32, "id": "X032", - "question": "по дог 15/24 какие документы", + "question": "по дог 24/15 какие документы", "session": null, "session_id": "asst-2026-04-02_Address_Slang_Live_Stress_2026-04-02_10-20-51-x032", "status_code": 200, @@ -921,7 +921,7 @@ { "index": 33, "id": "X033", - "question": "договор 15/24 выведи доки", + "question": "договор 24/15 выведи доки", "session": null, "session_id": "asst-2026-04-02_Address_Slang_Live_Stress_2026-04-02_10-20-51-x033", "status_code": 200, @@ -948,7 +948,7 @@ { "index": 34, "id": "X034", - "question": "нах покажи документы по 15/24", + "question": "нах покажи документы по 24/15", "session": null, "session_id": "asst-2026-04-02_Address_Slang_Live_Stress_2026-04-02_10-20-51-x034", "status_code": 200, @@ -975,7 +975,7 @@ { "index": 35, "id": "X035", - "question": "банк операции по договору 15/24", + "question": "банк операции по договору 24/15", "session": null, "session_id": "asst-2026-04-02_Address_Slang_Live_Stress_2026-04-02_10-20-51-x035", "status_code": 200, @@ -1002,7 +1002,7 @@ { "index": 36, "id": "X036", - "question": "платежки по дог 15/24", + "question": "платежки по дог 24/15", "session": null, "session_id": "asst-2026-04-02_Address_Slang_Live_Stress_2026-04-02_10-20-51-x036", "status_code": 200, @@ -1029,7 +1029,7 @@ { "index": 37, "id": "X037", - "question": "выписка по контракту 15/24", + "question": "выписка по контракту 24/15", "session": null, "session_id": "asst-2026-04-02_Address_Slang_Live_Stress_2026-04-02_10-20-51-x037", "status_code": 200, @@ -1056,7 +1056,7 @@ { "index": 38, "id": "X038", - "question": "bank ops by contract 15/24", + "question": "bank ops by contract 24/15", "session": null, "session_id": "asst-2026-04-02_Address_Slang_Live_Stress_2026-04-02_10-20-51-x038", "status_code": 200, @@ -1083,7 +1083,7 @@ { "index": 39, "id": "X039", - "question": "покажи банк опер по дог 15/24 пж", + "question": "покажи банк опер по дог 24/15 пж", "session": null, "session_id": "asst-2026-04-02_Address_Slang_Live_Stress_2026-04-02_10-20-51-x039", "status_code": 200, @@ -1110,7 +1110,7 @@ { "index": 40, "id": "X040", - "question": "епт транзакции договор 15/24", + "question": "епт транзакции договор 24/15", "session": null, "session_id": "asst-2026-04-02_Address_Slang_Live_Stress_2026-04-02_10-20-51-x040", "status_code": 200, diff --git a/docs/ADDRESS/runs/2026-04-02_Address_Slang_Live_Stress_2026-04-02_10-26-25/full_live_results.json b/docs/ADDRESS/runs/2026-04-02_Address_Slang_Live_Stress_2026-04-02_10-26-25/full_live_results.json index eaa88bc..21e5ca0 100644 --- a/docs/ADDRESS/runs/2026-04-02_Address_Slang_Live_Stress_2026-04-02_10-26-25/full_live_results.json +++ b/docs/ADDRESS/runs/2026-04-02_Address_Slang_Live_Stress_2026-04-02_10-26-25/full_live_results.json @@ -811,7 +811,7 @@ { "index": 29, "id": "X029", - "question": "доки по договору 15/24 за 2020", + "question": "доки по договору 24/15 за 2020", "session": null, "session_id": "asst-2026-04-02_Address_Slang_Live_Stress_2026-04-02_10-26-25-x029", "status_code": 200, @@ -838,7 +838,7 @@ { "index": 30, "id": "X030", - "question": "покажи документы контракт 15/24", + "question": "покажи документы контракт 24/15", "session": null, "session_id": "asst-2026-04-02_Address_Slang_Live_Stress_2026-04-02_10-26-25-x030", "status_code": 200, @@ -865,7 +865,7 @@ { "index": 31, "id": "X031", - "question": "docs by contract 15/24 2020", + "question": "docs by contract 24/15 2020", "session": null, "session_id": "asst-2026-04-02_Address_Slang_Live_Stress_2026-04-02_10-26-25-x031", "status_code": 200, @@ -892,7 +892,7 @@ { "index": 32, "id": "X032", - "question": "по дог 15/24 какие документы", + "question": "по дог 24/15 какие документы", "session": null, "session_id": "asst-2026-04-02_Address_Slang_Live_Stress_2026-04-02_10-26-25-x032", "status_code": 200, @@ -919,7 +919,7 @@ { "index": 33, "id": "X033", - "question": "договор 15/24 выведи доки", + "question": "договор 24/15 выведи доки", "session": null, "session_id": "asst-2026-04-02_Address_Slang_Live_Stress_2026-04-02_10-26-25-x033", "status_code": 200, @@ -946,7 +946,7 @@ { "index": 34, "id": "X034", - "question": "нах покажи документы по 15/24", + "question": "нах покажи документы по 24/15", "session": null, "session_id": "asst-2026-04-02_Address_Slang_Live_Stress_2026-04-02_10-26-25-x034", "status_code": 200, @@ -973,7 +973,7 @@ { "index": 35, "id": "X035", - "question": "банк операции по договору 15/24", + "question": "банк операции по договору 24/15", "session": null, "session_id": "asst-2026-04-02_Address_Slang_Live_Stress_2026-04-02_10-26-25-x035", "status_code": 200, @@ -1000,7 +1000,7 @@ { "index": 36, "id": "X036", - "question": "платежки по дог 15/24", + "question": "платежки по дог 24/15", "session": null, "session_id": "asst-2026-04-02_Address_Slang_Live_Stress_2026-04-02_10-26-25-x036", "status_code": 200, @@ -1027,7 +1027,7 @@ { "index": 37, "id": "X037", - "question": "выписка по контракту 15/24", + "question": "выписка по контракту 24/15", "session": null, "session_id": "asst-2026-04-02_Address_Slang_Live_Stress_2026-04-02_10-26-25-x037", "status_code": 200, @@ -1054,7 +1054,7 @@ { "index": 38, "id": "X038", - "question": "bank ops by contract 15/24", + "question": "bank ops by contract 24/15", "session": null, "session_id": "asst-2026-04-02_Address_Slang_Live_Stress_2026-04-02_10-26-25-x038", "status_code": 200, @@ -1081,7 +1081,7 @@ { "index": 39, "id": "X039", - "question": "покажи банк опер по дог 15/24 пж", + "question": "покажи банк опер по дог 24/15 пж", "session": null, "session_id": "asst-2026-04-02_Address_Slang_Live_Stress_2026-04-02_10-26-25-x039", "status_code": 200, @@ -1108,7 +1108,7 @@ { "index": 40, "id": "X040", - "question": "епт транзакции договор 15/24", + "question": "епт транзакции договор 24/15", "session": null, "session_id": "asst-2026-04-02_Address_Slang_Live_Stress_2026-04-02_10-26-25-x040", "status_code": 200, diff --git a/docs/ADDRESS/runs/2026-04-02_Address_Slang_Live_Stress_2026-04-02_10-31-12/full_live_results.json b/docs/ADDRESS/runs/2026-04-02_Address_Slang_Live_Stress_2026-04-02_10-31-12/full_live_results.json index 309c864..b701bcd 100644 --- a/docs/ADDRESS/runs/2026-04-02_Address_Slang_Live_Stress_2026-04-02_10-31-12/full_live_results.json +++ b/docs/ADDRESS/runs/2026-04-02_Address_Slang_Live_Stress_2026-04-02_10-31-12/full_live_results.json @@ -1193,7 +1193,7 @@ { "index": 43, "id": "S043", - "question": "покажи документы по договору 15/24 за 2020", + "question": "покажи документы по договору 24/15 за 2020", "session": null, "session_id": "asst-2026-04-02_Address_Slang_Live_Stress_2026-04-02_10-31-12-s043", "status_code": 200, @@ -1220,7 +1220,7 @@ { "index": 44, "id": "S044", - "question": "доки по дог. 15/24 за 2020", + "question": "доки по дог. 24/15 за 2020", "session": null, "session_id": "asst-2026-04-02_Address_Slang_Live_Stress_2026-04-02_10-31-12-s044", "status_code": 200, @@ -1247,7 +1247,7 @@ { "index": 45, "id": "S045", - "question": "какие документы по контракту 15/24", + "question": "какие документы по контракту 24/15", "session": null, "session_id": "asst-2026-04-02_Address_Slang_Live_Stress_2026-04-02_10-31-12-s045", "status_code": 200, @@ -1274,7 +1274,7 @@ { "index": 46, "id": "S046", - "question": "docs by contract 15/24 year 2020", + "question": "docs by contract 24/15 year 2020", "session": null, "session_id": "asst-2026-04-02_Address_Slang_Live_Stress_2026-04-02_10-31-12-s046", "status_code": 200, @@ -1301,7 +1301,7 @@ { "index": 47, "id": "S047", - "question": "бля, покажи по договору 15/24 доки", + "question": "бля, покажи по договору 24/15 доки", "session": null, "session_id": "asst-2026-04-02_Address_Slang_Live_Stress_2026-04-02_10-31-12-s047", "status_code": 200, @@ -1328,7 +1328,7 @@ { "index": 48, "id": "S048", - "question": "договор 15/24 документы", + "question": "договор 24/15 документы", "session": null, "session_id": "asst-2026-04-02_Address_Slang_Live_Stress_2026-04-02_10-31-12-s048", "status_code": 200, @@ -1355,7 +1355,7 @@ { "index": 49, "id": "S049", - "question": "плс документы договор №15/24", + "question": "плс документы договор №24/15", "session": null, "session_id": "asst-2026-04-02_Address_Slang_Live_Stress_2026-04-02_10-31-12-s049", "status_code": 200, @@ -1382,7 +1382,7 @@ { "index": 50, "id": "S050", - "question": "покеж документы по 15/24", + "question": "покеж документы по 24/15", "session": null, "session_id": "asst-2026-04-02_Address_Slang_Live_Stress_2026-04-02_10-31-12-s050", "status_code": 200, @@ -1409,7 +1409,7 @@ { "index": 51, "id": "S051", - "question": "банковские операции по договору 15/24", + "question": "банковские операции по договору 24/15", "session": null, "session_id": "asst-2026-04-02_Address_Slang_Live_Stress_2026-04-02_10-31-12-s051", "status_code": 200, @@ -1436,7 +1436,7 @@ { "index": 52, "id": "S052", - "question": "платежи по договору 15/24", + "question": "платежи по договору 24/15", "session": null, "session_id": "asst-2026-04-02_Address_Slang_Live_Stress_2026-04-02_10-31-12-s052", "status_code": 200, @@ -1463,7 +1463,7 @@ { "index": 53, "id": "S053", - "question": "выписка по договору 15/24", + "question": "выписка по договору 24/15", "session": null, "session_id": "asst-2026-04-02_Address_Slang_Live_Stress_2026-04-02_10-31-12-s053", "status_code": 200, @@ -1490,7 +1490,7 @@ { "index": 54, "id": "S054", - "question": "bank ops by contract 15/24", + "question": "bank ops by contract 24/15", "session": null, "session_id": "asst-2026-04-02_Address_Slang_Live_Stress_2026-04-02_10-31-12-s054", "status_code": 200, @@ -1517,7 +1517,7 @@ { "index": 55, "id": "S055", - "question": "ёпт, покажи банк операции по дог 15/24", + "question": "ёпт, покажи банк операции по дог 24/15", "session": null, "session_id": "asst-2026-04-02_Address_Slang_Live_Stress_2026-04-02_10-31-12-s055", "status_code": 200, @@ -1544,7 +1544,7 @@ { "index": 56, "id": "S056", - "question": "по контракту 15/24 платежки", + "question": "по контракту 24/15 платежки", "session": null, "session_id": "asst-2026-04-02_Address_Slang_Live_Stress_2026-04-02_10-31-12-s056", "status_code": 200, @@ -2435,7 +2435,7 @@ { "index": 89, "id": "X029", - "question": "доки по договору 15/24 за 2020", + "question": "доки по договору 24/15 за 2020", "session": null, "session_id": "asst-2026-04-02_Address_Slang_Live_Stress_2026-04-02_10-31-12-x029", "status_code": 200, @@ -2462,7 +2462,7 @@ { "index": 90, "id": "X030", - "question": "покажи документы контракт 15/24", + "question": "покажи документы контракт 24/15", "session": null, "session_id": "asst-2026-04-02_Address_Slang_Live_Stress_2026-04-02_10-31-12-x030", "status_code": 200, @@ -2489,7 +2489,7 @@ { "index": 91, "id": "X031", - "question": "docs by contract 15/24 2020", + "question": "docs by contract 24/15 2020", "session": null, "session_id": "asst-2026-04-02_Address_Slang_Live_Stress_2026-04-02_10-31-12-x031", "status_code": 200, @@ -2516,7 +2516,7 @@ { "index": 92, "id": "X032", - "question": "по дог 15/24 какие документы", + "question": "по дог 24/15 какие документы", "session": null, "session_id": "asst-2026-04-02_Address_Slang_Live_Stress_2026-04-02_10-31-12-x032", "status_code": 200, @@ -2543,7 +2543,7 @@ { "index": 93, "id": "X033", - "question": "договор 15/24 выведи доки", + "question": "договор 24/15 выведи доки", "session": null, "session_id": "asst-2026-04-02_Address_Slang_Live_Stress_2026-04-02_10-31-12-x033", "status_code": 200, @@ -2570,7 +2570,7 @@ { "index": 94, "id": "X034", - "question": "нах покажи документы по 15/24", + "question": "нах покажи документы по 24/15", "session": null, "session_id": "asst-2026-04-02_Address_Slang_Live_Stress_2026-04-02_10-31-12-x034", "status_code": 200, @@ -2597,7 +2597,7 @@ { "index": 95, "id": "X035", - "question": "банк операции по договору 15/24", + "question": "банк операции по договору 24/15", "session": null, "session_id": "asst-2026-04-02_Address_Slang_Live_Stress_2026-04-02_10-31-12-x035", "status_code": 200, @@ -2624,7 +2624,7 @@ { "index": 96, "id": "X036", - "question": "платежки по дог 15/24", + "question": "платежки по дог 24/15", "session": null, "session_id": "asst-2026-04-02_Address_Slang_Live_Stress_2026-04-02_10-31-12-x036", "status_code": 200, @@ -2651,7 +2651,7 @@ { "index": 97, "id": "X037", - "question": "выписка по контракту 15/24", + "question": "выписка по контракту 24/15", "session": null, "session_id": "asst-2026-04-02_Address_Slang_Live_Stress_2026-04-02_10-31-12-x037", "status_code": 200, @@ -2678,7 +2678,7 @@ { "index": 98, "id": "X038", - "question": "bank ops by contract 15/24", + "question": "bank ops by contract 24/15", "session": null, "session_id": "asst-2026-04-02_Address_Slang_Live_Stress_2026-04-02_10-31-12-x038", "status_code": 200, @@ -2705,7 +2705,7 @@ { "index": 99, "id": "X039", - "question": "покажи банк опер по дог 15/24 пж", + "question": "покажи банк опер по дог 24/15 пж", "session": null, "session_id": "asst-2026-04-02_Address_Slang_Live_Stress_2026-04-02_10-31-12-x039", "status_code": 200, @@ -2732,7 +2732,7 @@ { "index": 100, "id": "X040", - "question": "епт транзакции договор 15/24", + "question": "епт транзакции договор 24/15", "session": null, "session_id": "asst-2026-04-02_Address_Slang_Live_Stress_2026-04-02_10-31-12-x040", "status_code": 200, diff --git a/docs/ADDRESS/runs/2026-04-02_Address_Slang_Live_Stress_2026-04-02_10-42-26/full_live_results.json b/docs/ADDRESS/runs/2026-04-02_Address_Slang_Live_Stress_2026-04-02_10-42-26/full_live_results.json index 544a89b..429032f 100644 --- a/docs/ADDRESS/runs/2026-04-02_Address_Slang_Live_Stress_2026-04-02_10-42-26/full_live_results.json +++ b/docs/ADDRESS/runs/2026-04-02_Address_Slang_Live_Stress_2026-04-02_10-42-26/full_live_results.json @@ -1191,7 +1191,7 @@ { "index": 43, "id": "S043", - "question": "покажи документы по договору 15/24 за 2020", + "question": "покажи документы по договору 24/15 за 2020", "session": null, "session_id": "asst-2026-04-02_Address_Slang_Live_Stress_2026-04-02_10-42-26-s043", "status_code": 200, @@ -1218,7 +1218,7 @@ { "index": 44, "id": "S044", - "question": "доки по дог. 15/24 за 2020", + "question": "доки по дог. 24/15 за 2020", "session": null, "session_id": "asst-2026-04-02_Address_Slang_Live_Stress_2026-04-02_10-42-26-s044", "status_code": 200, @@ -1245,7 +1245,7 @@ { "index": 45, "id": "S045", - "question": "какие документы по контракту 15/24", + "question": "какие документы по контракту 24/15", "session": null, "session_id": "asst-2026-04-02_Address_Slang_Live_Stress_2026-04-02_10-42-26-s045", "status_code": 200, @@ -1272,7 +1272,7 @@ { "index": 46, "id": "S046", - "question": "docs by contract 15/24 year 2020", + "question": "docs by contract 24/15 year 2020", "session": null, "session_id": "asst-2026-04-02_Address_Slang_Live_Stress_2026-04-02_10-42-26-s046", "status_code": 200, @@ -1299,7 +1299,7 @@ { "index": 47, "id": "S047", - "question": "бля, покажи по договору 15/24 доки", + "question": "бля, покажи по договору 24/15 доки", "session": null, "session_id": "asst-2026-04-02_Address_Slang_Live_Stress_2026-04-02_10-42-26-s047", "status_code": 200, @@ -1326,7 +1326,7 @@ { "index": 48, "id": "S048", - "question": "договор 15/24 документы", + "question": "договор 24/15 документы", "session": null, "session_id": "asst-2026-04-02_Address_Slang_Live_Stress_2026-04-02_10-42-26-s048", "status_code": 200, @@ -1353,7 +1353,7 @@ { "index": 49, "id": "S049", - "question": "плс документы договор №15/24", + "question": "плс документы договор №24/15", "session": null, "session_id": "asst-2026-04-02_Address_Slang_Live_Stress_2026-04-02_10-42-26-s049", "status_code": 200, @@ -1380,7 +1380,7 @@ { "index": 50, "id": "S050", - "question": "покеж документы по 15/24", + "question": "покеж документы по 24/15", "session": null, "session_id": "asst-2026-04-02_Address_Slang_Live_Stress_2026-04-02_10-42-26-s050", "status_code": 200, @@ -1407,7 +1407,7 @@ { "index": 51, "id": "S051", - "question": "банковские операции по договору 15/24", + "question": "банковские операции по договору 24/15", "session": null, "session_id": "asst-2026-04-02_Address_Slang_Live_Stress_2026-04-02_10-42-26-s051", "status_code": 200, @@ -1434,7 +1434,7 @@ { "index": 52, "id": "S052", - "question": "платежи по договору 15/24", + "question": "платежи по договору 24/15", "session": null, "session_id": "asst-2026-04-02_Address_Slang_Live_Stress_2026-04-02_10-42-26-s052", "status_code": 200, @@ -1461,7 +1461,7 @@ { "index": 53, "id": "S053", - "question": "выписка по договору 15/24", + "question": "выписка по договору 24/15", "session": null, "session_id": "asst-2026-04-02_Address_Slang_Live_Stress_2026-04-02_10-42-26-s053", "status_code": 200, @@ -1488,7 +1488,7 @@ { "index": 54, "id": "S054", - "question": "bank ops by contract 15/24", + "question": "bank ops by contract 24/15", "session": null, "session_id": "asst-2026-04-02_Address_Slang_Live_Stress_2026-04-02_10-42-26-s054", "status_code": 200, @@ -1515,7 +1515,7 @@ { "index": 55, "id": "S055", - "question": "ёпт, покажи банк операции по дог 15/24", + "question": "ёпт, покажи банк операции по дог 24/15", "session": null, "session_id": "asst-2026-04-02_Address_Slang_Live_Stress_2026-04-02_10-42-26-s055", "status_code": 200, @@ -1542,7 +1542,7 @@ { "index": 56, "id": "S056", - "question": "по контракту 15/24 платежки", + "question": "по контракту 24/15 платежки", "session": null, "session_id": "asst-2026-04-02_Address_Slang_Live_Stress_2026-04-02_10-42-26-s056", "status_code": 200, @@ -2433,7 +2433,7 @@ { "index": 89, "id": "X029", - "question": "доки по договору 15/24 за 2020", + "question": "доки по договору 24/15 за 2020", "session": null, "session_id": "asst-2026-04-02_Address_Slang_Live_Stress_2026-04-02_10-42-26-x029", "status_code": 200, @@ -2460,7 +2460,7 @@ { "index": 90, "id": "X030", - "question": "покажи документы контракт 15/24", + "question": "покажи документы контракт 24/15", "session": null, "session_id": "asst-2026-04-02_Address_Slang_Live_Stress_2026-04-02_10-42-26-x030", "status_code": 200, @@ -2487,7 +2487,7 @@ { "index": 91, "id": "X031", - "question": "docs by contract 15/24 2020", + "question": "docs by contract 24/15 2020", "session": null, "session_id": "asst-2026-04-02_Address_Slang_Live_Stress_2026-04-02_10-42-26-x031", "status_code": 200, @@ -2514,7 +2514,7 @@ { "index": 92, "id": "X032", - "question": "по дог 15/24 какие документы", + "question": "по дог 24/15 какие документы", "session": null, "session_id": "asst-2026-04-02_Address_Slang_Live_Stress_2026-04-02_10-42-26-x032", "status_code": 200, @@ -2541,7 +2541,7 @@ { "index": 93, "id": "X033", - "question": "договор 15/24 выведи доки", + "question": "договор 24/15 выведи доки", "session": null, "session_id": "asst-2026-04-02_Address_Slang_Live_Stress_2026-04-02_10-42-26-x033", "status_code": 200, @@ -2568,7 +2568,7 @@ { "index": 94, "id": "X034", - "question": "нах покажи документы по 15/24", + "question": "нах покажи документы по 24/15", "session": null, "session_id": "asst-2026-04-02_Address_Slang_Live_Stress_2026-04-02_10-42-26-x034", "status_code": 200, @@ -2595,7 +2595,7 @@ { "index": 95, "id": "X035", - "question": "банк операции по договору 15/24", + "question": "банк операции по договору 24/15", "session": null, "session_id": "asst-2026-04-02_Address_Slang_Live_Stress_2026-04-02_10-42-26-x035", "status_code": 200, @@ -2622,7 +2622,7 @@ { "index": 96, "id": "X036", - "question": "платежки по дог 15/24", + "question": "платежки по дог 24/15", "session": null, "session_id": "asst-2026-04-02_Address_Slang_Live_Stress_2026-04-02_10-42-26-x036", "status_code": 200, @@ -2649,7 +2649,7 @@ { "index": 97, "id": "X037", - "question": "выписка по контракту 15/24", + "question": "выписка по контракту 24/15", "session": null, "session_id": "asst-2026-04-02_Address_Slang_Live_Stress_2026-04-02_10-42-26-x037", "status_code": 200, @@ -2676,7 +2676,7 @@ { "index": 98, "id": "X038", - "question": "bank ops by contract 15/24", + "question": "bank ops by contract 24/15", "session": null, "session_id": "asst-2026-04-02_Address_Slang_Live_Stress_2026-04-02_10-42-26-x038", "status_code": 200, @@ -2703,7 +2703,7 @@ { "index": 99, "id": "X039", - "question": "покажи банк опер по дог 15/24 пж", + "question": "покажи банк опер по дог 24/15 пж", "session": null, "session_id": "asst-2026-04-02_Address_Slang_Live_Stress_2026-04-02_10-42-26-x039", "status_code": 200, @@ -2730,7 +2730,7 @@ { "index": 100, "id": "X040", - "question": "епт транзакции договор 15/24", + "question": "епт транзакции договор 24/15", "session": null, "session_id": "asst-2026-04-02_Address_Slang_Live_Stress_2026-04-02_10-42-26-x040", "status_code": 200, diff --git a/docs/ADDRESS/runs/2026-04-02_Address_Slang_Live_Stress_2026-04-02_11-17-36/full_live_results.json b/docs/ADDRESS/runs/2026-04-02_Address_Slang_Live_Stress_2026-04-02_11-17-36/full_live_results.json index 5d94bde..8e5ee2b 100644 --- a/docs/ADDRESS/runs/2026-04-02_Address_Slang_Live_Stress_2026-04-02_11-17-36/full_live_results.json +++ b/docs/ADDRESS/runs/2026-04-02_Address_Slang_Live_Stress_2026-04-02_11-17-36/full_live_results.json @@ -78,7 +78,7 @@ { "index": 2, "id": "OC002", - "question": "Есть ли долг по договору 15/24 на 2020-07-31", + "question": "Есть ли долг по договору 24/15 на 2020-07-31", "session": null, "session_id": "asst-2026-04-02_Address_Slang_Live_Stress_2026-04-02_11-17-36-oc002", "status_code": 200, diff --git a/docs/ADDRESS/runs/2026-04-02_Address_Slang_Live_Stress_2026-04-02_11-25-30/failures_only.json b/docs/ADDRESS/runs/2026-04-02_Address_Slang_Live_Stress_2026-04-02_11-25-30/failures_only.json index e627e0c..a254885 100644 --- a/docs/ADDRESS/runs/2026-04-02_Address_Slang_Live_Stress_2026-04-02_11-25-30/failures_only.json +++ b/docs/ADDRESS/runs/2026-04-02_Address_Slang_Live_Stress_2026-04-02_11-25-30/failures_only.json @@ -2,7 +2,7 @@ { "index": 2, "id": "OC002", - "question": "Есть ли долг по договору 15/24 на 2020-07-31", + "question": "Есть ли долг по договору 24/15 на 2020-07-31", "session": null, "session_id": "asst-2026-04-02_Address_Slang_Live_Stress_2026-04-02_11-25-30-oc002", "status_code": 200, @@ -78,7 +78,7 @@ "extracted_filters": { "sort": "period_desc", "limit": 20, - "contract": "15/24", + "contract": "24/15", "period_from": "2020-07-01", "period_to": "2020-07-31" }, @@ -88,8 +88,8 @@ "account_scope_mode": "preferred", "account_scope_fallback_applied": true, "anchor_type": "contract", - "anchor_value_raw": "15/24", - "anchor_value_resolved": "15/24", + "anchor_value_raw": "24/15", + "anchor_value_resolved": "24/15", "resolver_confidence": "medium", "ambiguity_count": 0, "match_failure_stage": "materialized_but_not_anchor_matched", @@ -132,10 +132,10 @@ "llm_decomposition_attempted": true, "llm_provider_used": "local", "llm_decomposition_trace_id": "3w1iqg2uMfQRU2", - "llm_decomposition_effective_message": "Проверить наличие долга по договору 15/24 на дату 2020-07-31.", + "llm_decomposition_effective_message": "Проверить наличие долга по договору 24/15 на дату 2020-07-31.", "llm_decomposition_reason": "normalized_fragment_applied", "fallback_rule_hit": null, - "sanitized_user_message": "есть ли долг по договору 15/24 на 2020-07-31", + "sanitized_user_message": "есть ли долг по договору 24/15 на 2020-07-31", "tool_gate_decision": "run_address_lane", "tool_gate_reason": "address_mode_classifier_detected", "answer_structure_v11": null, @@ -145,7 +145,7 @@ "trace_id": "3w1iqg2uMfQRU2", "prompt_version": "normalizer_v2_0_2", "applied": true, - "effective_message": "Проверить наличие долга по договору 15/24 на дату 2020-07-31." + "effective_message": "Проверить наличие долга по договору 24/15 на дату 2020-07-31." } }, "error_code": null, diff --git a/docs/ADDRESS/runs/2026-04-02_Address_Slang_Live_Stress_2026-04-02_11-25-30/full_live_results.json b/docs/ADDRESS/runs/2026-04-02_Address_Slang_Live_Stress_2026-04-02_11-25-30/full_live_results.json index bd108c3..065cd7a 100644 --- a/docs/ADDRESS/runs/2026-04-02_Address_Slang_Live_Stress_2026-04-02_11-25-30/full_live_results.json +++ b/docs/ADDRESS/runs/2026-04-02_Address_Slang_Live_Stress_2026-04-02_11-25-30/full_live_results.json @@ -206,7 +206,7 @@ { "index": 2, "id": "OC002", - "question": "Есть ли долг по договору 15/24 на 2020-07-31", + "question": "Есть ли долг по договору 24/15 на 2020-07-31", "session": null, "session_id": "asst-2026-04-02_Address_Slang_Live_Stress_2026-04-02_11-25-30-oc002", "status_code": 200, @@ -282,7 +282,7 @@ "extracted_filters": { "sort": "period_desc", "limit": 20, - "contract": "15/24", + "contract": "24/15", "period_from": "2020-07-01", "period_to": "2020-07-31" }, @@ -292,8 +292,8 @@ "account_scope_mode": "preferred", "account_scope_fallback_applied": true, "anchor_type": "contract", - "anchor_value_raw": "15/24", - "anchor_value_resolved": "15/24", + "anchor_value_raw": "24/15", + "anchor_value_resolved": "24/15", "resolver_confidence": "medium", "ambiguity_count": 0, "match_failure_stage": "materialized_but_not_anchor_matched", @@ -336,10 +336,10 @@ "llm_decomposition_attempted": true, "llm_provider_used": "local", "llm_decomposition_trace_id": "3w1iqg2uMfQRU2", - "llm_decomposition_effective_message": "Проверить наличие долга по договору 15/24 на дату 2020-07-31.", + "llm_decomposition_effective_message": "Проверить наличие долга по договору 24/15 на дату 2020-07-31.", "llm_decomposition_reason": "normalized_fragment_applied", "fallback_rule_hit": null, - "sanitized_user_message": "есть ли долг по договору 15/24 на 2020-07-31", + "sanitized_user_message": "есть ли долг по договору 24/15 на 2020-07-31", "tool_gate_decision": "run_address_lane", "tool_gate_reason": "address_mode_classifier_detected", "answer_structure_v11": null, @@ -349,7 +349,7 @@ "trace_id": "3w1iqg2uMfQRU2", "prompt_version": "normalizer_v2_0_2", "applied": true, - "effective_message": "Проверить наличие долга по договору 15/24 на дату 2020-07-31." + "effective_message": "Проверить наличие долга по договору 24/15 на дату 2020-07-31." } }, "error_code": null, diff --git a/docs/ADDRESS/runs/2026-04-02_Address_Slang_Live_Stress_2026-04-02_11-25-30/response_audit.md b/docs/ADDRESS/runs/2026-04-02_Address_Slang_Live_Stress_2026-04-02_11-25-30/response_audit.md index 06f7afd..564fc5c 100644 --- a/docs/ADDRESS/runs/2026-04-02_Address_Slang_Live_Stress_2026-04-02_11-25-30/response_audit.md +++ b/docs/ADDRESS/runs/2026-04-02_Address_Slang_Live_Stress_2026-04-02_11-25-30/response_audit.md @@ -3,5 +3,5 @@ | id | strict | route_health | reply_type | intent | limited_reason | question | assistant_first_line | |---|---|---|---|---|---|---|---| | OC001 | True | ok_or_factual | factual | list_open_contracts | None | Покажи незакрытые договоры на 2020-12-31 | Собраны кандидаты по незакрытым договорным позициям (по live движениям 60/62/76). | -| OC002 | False | likely_blocked_route | partial_coverage | open_items_by_counterparty_or_contract | empty_match | Есть ли долг по договору 15/24 на 2020-07-31 | В live-данных по текущему фильтру записи не найдены. | +| OC002 | False | likely_blocked_route | partial_coverage | open_items_by_counterparty_or_contract | empty_match | Есть ли долг по договору 24/15 на 2020-07-31 | В live-данных по текущему фильтру записи не найдены. | | OC003 | True | ok_or_factual | factual | list_open_contracts | None | Show open contracts as of 2020-12-31 | Собраны кандидаты по незакрытым договорным позициям (по live движениям 60/62/76). | diff --git a/docs/ADDRESS/runs/2026-04-02_Address_Slang_Live_Stress_2026-04-02_11-43-21/failures_only.json b/docs/ADDRESS/runs/2026-04-02_Address_Slang_Live_Stress_2026-04-02_11-43-21/failures_only.json index 8807988..f113ab3 100644 --- a/docs/ADDRESS/runs/2026-04-02_Address_Slang_Live_Stress_2026-04-02_11-43-21/failures_only.json +++ b/docs/ADDRESS/runs/2026-04-02_Address_Slang_Live_Stress_2026-04-02_11-43-21/failures_only.json @@ -304,7 +304,7 @@ { "index": 4, "id": "OI004", - "question": "Покажи открытые позиции по договору 15/24", + "question": "Покажи открытые позиции по договору 24/15", "session": null, "session_id": "asst-2026-04-02_Address_Slang_Live_Stress_2026-04-02_11-43-21-oi004", "status_code": 200, @@ -380,7 +380,7 @@ "extracted_filters": { "sort": "period_desc", "limit": 20, - "contract": "15/24" + "contract": "24/15" }, "missing_required_filters": [], "selected_recipe": "address_open_items_by_party_or_contract_v1", @@ -388,8 +388,8 @@ "account_scope_mode": "preferred", "account_scope_fallback_applied": true, "anchor_type": "contract", - "anchor_value_raw": "15/24", - "anchor_value_resolved": "15/24", + "anchor_value_raw": "24/15", + "anchor_value_resolved": "24/15", "resolver_confidence": "medium", "ambiguity_count": 0, "match_failure_stage": "materialized_but_not_anchor_matched", @@ -432,10 +432,10 @@ "llm_decomposition_attempted": true, "llm_provider_used": "local", "llm_decomposition_trace_id": "fpG27I3Bq2rPIb", - "llm_decomposition_effective_message": "Показать открытые позиции по договору 15/24.", + "llm_decomposition_effective_message": "Показать открытые позиции по договору 24/15.", "llm_decomposition_reason": "normalized_fragment_applied", "fallback_rule_hit": null, - "sanitized_user_message": "покажи открытые позиции по договору 15/24", + "sanitized_user_message": "покажи открытые позиции по договору 24/15", "tool_gate_decision": "run_address_lane", "tool_gate_reason": "address_mode_classifier_detected", "answer_structure_v11": null, @@ -445,7 +445,7 @@ "trace_id": "fpG27I3Bq2rPIb", "prompt_version": "normalizer_v2_0_2", "applied": true, - "effective_message": "Показать открытые позиции по договору 15/24." + "effective_message": "Показать открытые позиции по договору 24/15." } }, "error_code": null, diff --git a/docs/ADDRESS/runs/2026-04-02_Address_Slang_Live_Stress_2026-04-02_11-43-21/full_live_results.json b/docs/ADDRESS/runs/2026-04-02_Address_Slang_Live_Stress_2026-04-02_11-43-21/full_live_results.json index c42dbfe..683a468 100644 --- a/docs/ADDRESS/runs/2026-04-02_Address_Slang_Live_Stress_2026-04-02_11-43-21/full_live_results.json +++ b/docs/ADDRESS/runs/2026-04-02_Address_Slang_Live_Stress_2026-04-02_11-43-21/full_live_results.json @@ -359,7 +359,7 @@ { "index": 3, "id": "OI003", - "question": "Есть ли незакрытые позиции по договору 15/24 на 2020-12-31", + "question": "Есть ли незакрытые позиции по договору 24/15 на 2020-12-31", "session": null, "session_id": "asst-2026-04-02_Address_Slang_Live_Stress_2026-04-02_11-43-21-oi003", "status_code": 200, @@ -436,7 +436,7 @@ "extracted_filters": { "sort": "period_desc", "limit": 20, - "contract": "15/24", + "contract": "24/15", "as_of_date": "2020-12-31" }, "missing_required_filters": [], @@ -445,8 +445,8 @@ "account_scope_mode": "preferred", "account_scope_fallback_applied": false, "anchor_type": "contract", - "anchor_value_raw": "15/24", - "anchor_value_resolved": "15/24", + "anchor_value_raw": "24/15", + "anchor_value_resolved": "24/15", "resolver_confidence": "medium", "ambiguity_count": 0, "match_failure_stage": "none", @@ -489,10 +489,10 @@ "llm_decomposition_attempted": true, "llm_provider_used": "local", "llm_decomposition_trace_id": "G7isJllutKJ9Ui", - "llm_decomposition_effective_message": "Проверить наличие незакрытых позиций по договору 15/24 на конец периода 2020-12-31.", + "llm_decomposition_effective_message": "Проверить наличие незакрытых позиций по договору 24/15 на конец периода 2020-12-31.", "llm_decomposition_reason": "normalized_fragment_applied", "fallback_rule_hit": null, - "sanitized_user_message": "есть ли незакрытые позиции по договору 15/24 на 2020-12-31", + "sanitized_user_message": "есть ли незакрытые позиции по договору 24/15 на 2020-12-31", "tool_gate_decision": "run_address_lane", "tool_gate_reason": "address_mode_classifier_detected", "answer_structure_v11": null, @@ -502,7 +502,7 @@ "trace_id": "G7isJllutKJ9Ui", "prompt_version": "normalizer_v2_0_2", "applied": true, - "effective_message": "Проверить наличие незакрытых позиций по договору 15/24 на конец периода 2020-12-31." + "effective_message": "Проверить наличие незакрытых позиций по договору 24/15 на конец периода 2020-12-31." } }, "error_code": null, @@ -511,7 +511,7 @@ { "index": 4, "id": "OI004", - "question": "Покажи открытые позиции по договору 15/24", + "question": "Покажи открытые позиции по договору 24/15", "session": null, "session_id": "asst-2026-04-02_Address_Slang_Live_Stress_2026-04-02_11-43-21-oi004", "status_code": 200, @@ -587,7 +587,7 @@ "extracted_filters": { "sort": "period_desc", "limit": 20, - "contract": "15/24" + "contract": "24/15" }, "missing_required_filters": [], "selected_recipe": "address_open_items_by_party_or_contract_v1", @@ -595,8 +595,8 @@ "account_scope_mode": "preferred", "account_scope_fallback_applied": true, "anchor_type": "contract", - "anchor_value_raw": "15/24", - "anchor_value_resolved": "15/24", + "anchor_value_raw": "24/15", + "anchor_value_resolved": "24/15", "resolver_confidence": "medium", "ambiguity_count": 0, "match_failure_stage": "materialized_but_not_anchor_matched", @@ -639,10 +639,10 @@ "llm_decomposition_attempted": true, "llm_provider_used": "local", "llm_decomposition_trace_id": "fpG27I3Bq2rPIb", - "llm_decomposition_effective_message": "Показать открытые позиции по договору 15/24.", + "llm_decomposition_effective_message": "Показать открытые позиции по договору 24/15.", "llm_decomposition_reason": "normalized_fragment_applied", "fallback_rule_hit": null, - "sanitized_user_message": "покажи открытые позиции по договору 15/24", + "sanitized_user_message": "покажи открытые позиции по договору 24/15", "tool_gate_decision": "run_address_lane", "tool_gate_reason": "address_mode_classifier_detected", "answer_structure_v11": null, @@ -652,7 +652,7 @@ "trace_id": "fpG27I3Bq2rPIb", "prompt_version": "normalizer_v2_0_2", "applied": true, - "effective_message": "Показать открытые позиции по договору 15/24." + "effective_message": "Показать открытые позиции по договору 24/15." } }, "error_code": null, @@ -812,7 +812,7 @@ { "index": 6, "id": "OI006", - "question": "Покажи документы по договору 15/24 за 2020", + "question": "Покажи документы по договору 24/15 за 2020", "session": null, "session_id": "asst-2026-04-02_Address_Slang_Live_Stress_2026-04-02_11-43-21-oi006", "status_code": 200, @@ -889,7 +889,7 @@ "extracted_filters": { "sort": "period_desc", "limit": 20, - "contract": "15/24", + "contract": "24/15", "period_from": "2020-01-01", "period_to": "2020-12-31" }, @@ -899,8 +899,8 @@ "account_scope_mode": "preferred", "account_scope_fallback_applied": false, "anchor_type": "contract", - "anchor_value_raw": "15/24", - "anchor_value_resolved": "15/24", + "anchor_value_raw": "24/15", + "anchor_value_resolved": "24/15", "resolver_confidence": "medium", "ambiguity_count": 0, "match_failure_stage": "none", @@ -943,10 +943,10 @@ "llm_decomposition_attempted": true, "llm_provider_used": "local", "llm_decomposition_trace_id": "zm1bYNlqBANrkD", - "llm_decomposition_effective_message": "Показать документы по договору 15/24 за период 2020 года.", + "llm_decomposition_effective_message": "Показать документы по договору 24/15 за период 2020 года.", "llm_decomposition_reason": "normalized_fragment_applied", "fallback_rule_hit": null, - "sanitized_user_message": "покажи документы по договору 15/24 за 2020", + "sanitized_user_message": "покажи документы по договору 24/15 за 2020", "tool_gate_decision": "run_address_lane", "tool_gate_reason": "address_mode_classifier_detected", "answer_structure_v11": null, @@ -956,7 +956,7 @@ "trace_id": "zm1bYNlqBANrkD", "prompt_version": "normalizer_v2_0_2", "applied": true, - "effective_message": "Показать документы по договору 15/24 за период 2020 года." + "effective_message": "Показать документы по договору 24/15 за период 2020 года." } }, "error_code": null, @@ -965,7 +965,7 @@ { "index": 7, "id": "OI007", - "question": "Покажи банковские операции по договору 15/24", + "question": "Покажи банковские операции по договору 24/15", "session": null, "session_id": "asst-2026-04-02_Address_Slang_Live_Stress_2026-04-02_11-43-21-oi007", "status_code": 200, @@ -1042,7 +1042,7 @@ "sort": "period_desc", "limit": 20, "account": "51", - "contract": "15/24" + "contract": "24/15" }, "missing_required_filters": [], "selected_recipe": "address_bank_operations_by_contract_v1", @@ -1050,8 +1050,8 @@ "account_scope_mode": "preferred", "account_scope_fallback_applied": false, "anchor_type": "contract", - "anchor_value_raw": "15/24", - "anchor_value_resolved": "15/24", + "anchor_value_raw": "24/15", + "anchor_value_resolved": "24/15", "resolver_confidence": "medium", "ambiguity_count": 0, "match_failure_stage": "none", @@ -1094,10 +1094,10 @@ "llm_decomposition_attempted": true, "llm_provider_used": "local", "llm_decomposition_trace_id": "9HCqh4K6dwrD0a", - "llm_decomposition_effective_message": "Показать банковские операции (счета 51, 60, 62) связанные с договором 15/24.", + "llm_decomposition_effective_message": "Показать банковские операции (счета 51, 60, 62) связанные с договором 24/15.", "llm_decomposition_reason": "normalized_fragment_applied", "fallback_rule_hit": null, - "sanitized_user_message": "покажи банковские операции по договору 15/24", + "sanitized_user_message": "покажи банковские операции по договору 24/15", "tool_gate_decision": "run_address_lane", "tool_gate_reason": "address_mode_classifier_detected", "answer_structure_v11": null, @@ -1107,7 +1107,7 @@ "trace_id": "9HCqh4K6dwrD0a", "prompt_version": "normalizer_v2_0_2", "applied": true, - "effective_message": "Показать банковские операции (счета 51, 60, 62) связанные с договором 15/24." + "effective_message": "Показать банковские операции (счета 51, 60, 62) связанные с договором 24/15." } }, "error_code": null, diff --git a/docs/ADDRESS/runs/2026-04-02_Address_Slang_Live_Stress_2026-04-02_11-43-21/response_audit.md b/docs/ADDRESS/runs/2026-04-02_Address_Slang_Live_Stress_2026-04-02_11-43-21/response_audit.md index 8322bd1..b7b3e77 100644 --- a/docs/ADDRESS/runs/2026-04-02_Address_Slang_Live_Stress_2026-04-02_11-43-21/response_audit.md +++ b/docs/ADDRESS/runs/2026-04-02_Address_Slang_Live_Stress_2026-04-02_11-43-21/response_audit.md @@ -4,8 +4,8 @@ |---|---|---|---|---|---|---|---| | OI001 | False | likely_blocked_route | partial_coverage | open_items_by_counterparty_or_contract | empty_match | Покажи хвосты по контрагенту СВК на 2020-12-31 | В live-данных по текущему фильтру записи не найдены. | | OI002 | False | likely_blocked_route | partial_coverage | open_items_by_counterparty_or_contract | empty_match | Покажи хвосты по контрагенту СВК на конец периода 2020-12-31 | В live-данных по текущему фильтру записи не найдены. | -| OI003 | True | ok_or_factual | factual | open_items_by_counterparty_or_contract | None | Есть ли незакрытые позиции по договору 15/24 на 2020-12-31 | Период сохранен. Глубина live-выборки автоматически расширена до 1000 строк. | -| OI004 | False | likely_blocked_route | partial_coverage | open_items_by_counterparty_or_contract | empty_match | Покажи открытые позиции по договору 15/24 | В live-данных по текущему фильтру записи не найдены. | +| OI003 | True | ok_or_factual | factual | open_items_by_counterparty_or_contract | None | Есть ли незакрытые позиции по договору 24/15 на 2020-12-31 | Период сохранен. Глубина live-выборки автоматически расширена до 1000 строк. | +| OI004 | False | likely_blocked_route | partial_coverage | open_items_by_counterparty_or_contract | empty_match | Покажи открытые позиции по договору 24/15 | В live-данных по текущему фильтру записи не найдены. | | OI005 | True | ok_or_factual | factual | list_open_contracts | None | Покажи незакрытые договоры на 2020-12-31 | Собраны кандидаты по незакрытым договорным позициям (по live движениям 60/62/76). | -| OI006 | True | ok_or_factual | factual | list_documents_by_contract | None | Покажи документы по договору 15/24 за 2020 | Период сохранен. Глубина live-выборки автоматически расширена до 1000 строк. | -| OI007 | True | ok_or_factual | factual | bank_operations_by_contract | None | Покажи банковские операции по договору 15/24 | Собран список банковских операций по договору (live address lane). | +| OI006 | True | ok_or_factual | factual | list_documents_by_contract | None | Покажи документы по договору 24/15 за 2020 | Период сохранен. Глубина live-выборки автоматически расширена до 1000 строк. | +| OI007 | True | ok_or_factual | factual | bank_operations_by_contract | None | Покажи банковские операции по договору 24/15 | Собран список банковских операций по договору (live address lane). | diff --git a/docs/ADDRESS/runs/2026-04-02_Address_Slang_Live_Stress_2026-04-02_11-48-09/failures_only.json b/docs/ADDRESS/runs/2026-04-02_Address_Slang_Live_Stress_2026-04-02_11-48-09/failures_only.json index dc52b78..be7a8c5 100644 --- a/docs/ADDRESS/runs/2026-04-02_Address_Slang_Live_Stress_2026-04-02_11-48-09/failures_only.json +++ b/docs/ADDRESS/runs/2026-04-02_Address_Slang_Live_Stress_2026-04-02_11-48-09/failures_only.json @@ -153,7 +153,7 @@ { "index": 3, "id": "OI003", - "question": "Есть ли незакрытые позиции по договору 15/24 на 2020-12-31", + "question": "Есть ли незакрытые позиции по договору 24/15 на 2020-12-31", "session": null, "session_id": "asst-2026-04-02_Address_Slang_Live_Stress_2026-04-02_11-48-09-oi003", "status_code": 200, @@ -229,7 +229,7 @@ "extracted_filters": { "sort": "period_desc", "limit": 20, - "contract": "15/24", + "contract": "24/15", "as_of_date": "2020-12-31" }, "missing_required_filters": [], @@ -238,8 +238,8 @@ "account_scope_mode": "preferred", "account_scope_fallback_applied": true, "anchor_type": "contract", - "anchor_value_raw": "15/24", - "anchor_value_resolved": "15/24", + "anchor_value_raw": "24/15", + "anchor_value_resolved": "24/15", "resolver_confidence": "medium", "ambiguity_count": 0, "match_failure_stage": "materialized_but_not_anchor_matched", @@ -282,10 +282,10 @@ "llm_decomposition_attempted": true, "llm_provider_used": "local", "llm_decomposition_trace_id": "FxjH16DJXAPNHq", - "llm_decomposition_effective_message": "Проверить наличие незакрытых позиций по договору 15/24 на конец периода 2020-12-31.", + "llm_decomposition_effective_message": "Проверить наличие незакрытых позиций по договору 24/15 на конец периода 2020-12-31.", "llm_decomposition_reason": "normalized_fragment_applied", "fallback_rule_hit": null, - "sanitized_user_message": "есть ли незакрытые позиции по договору 15/24 на 2020-12-31", + "sanitized_user_message": "есть ли незакрытые позиции по договору 24/15 на 2020-12-31", "tool_gate_decision": "run_address_lane", "tool_gate_reason": "address_mode_classifier_detected", "answer_structure_v11": null, @@ -295,7 +295,7 @@ "trace_id": "FxjH16DJXAPNHq", "prompt_version": "normalizer_v2_0_2", "applied": true, - "effective_message": "Проверить наличие незакрытых позиций по договору 15/24 на конец периода 2020-12-31." + "effective_message": "Проверить наличие незакрытых позиций по договору 24/15 на конец периода 2020-12-31." } }, "error_code": null, @@ -304,7 +304,7 @@ { "index": 4, "id": "OI004", - "question": "Покажи открытые позиции по договору 15/24", + "question": "Покажи открытые позиции по договору 24/15", "session": null, "session_id": "asst-2026-04-02_Address_Slang_Live_Stress_2026-04-02_11-48-09-oi004", "status_code": 200, @@ -380,7 +380,7 @@ "extracted_filters": { "sort": "period_desc", "limit": 20, - "contract": "15/24" + "contract": "24/15" }, "missing_required_filters": [], "selected_recipe": "address_open_items_by_party_or_contract_v1", @@ -388,8 +388,8 @@ "account_scope_mode": "preferred", "account_scope_fallback_applied": true, "anchor_type": "contract", - "anchor_value_raw": "15/24", - "anchor_value_resolved": "15/24", + "anchor_value_raw": "24/15", + "anchor_value_resolved": "24/15", "resolver_confidence": "medium", "ambiguity_count": 0, "match_failure_stage": "materialized_but_not_anchor_matched", @@ -432,10 +432,10 @@ "llm_decomposition_attempted": true, "llm_provider_used": "local", "llm_decomposition_trace_id": "Q08pHjSGHcJ8sq", - "llm_decomposition_effective_message": "Показать открытые позиции по договору 15/24.", + "llm_decomposition_effective_message": "Показать открытые позиции по договору 24/15.", "llm_decomposition_reason": "normalized_fragment_applied", "fallback_rule_hit": null, - "sanitized_user_message": "покажи открытые позиции по договору 15/24", + "sanitized_user_message": "покажи открытые позиции по договору 24/15", "tool_gate_decision": "run_address_lane", "tool_gate_reason": "address_mode_classifier_detected", "answer_structure_v11": null, @@ -445,7 +445,7 @@ "trace_id": "Q08pHjSGHcJ8sq", "prompt_version": "normalizer_v2_0_2", "applied": true, - "effective_message": "Показать открытые позиции по договору 15/24." + "effective_message": "Показать открытые позиции по договору 24/15." } }, "error_code": null, diff --git a/docs/ADDRESS/runs/2026-04-02_Address_Slang_Live_Stress_2026-04-02_11-48-09/full_live_results.json b/docs/ADDRESS/runs/2026-04-02_Address_Slang_Live_Stress_2026-04-02_11-48-09/full_live_results.json index 9fcc38c..83f6d67 100644 --- a/docs/ADDRESS/runs/2026-04-02_Address_Slang_Live_Stress_2026-04-02_11-48-09/full_live_results.json +++ b/docs/ADDRESS/runs/2026-04-02_Address_Slang_Live_Stress_2026-04-02_11-48-09/full_live_results.json @@ -361,7 +361,7 @@ { "index": 3, "id": "OI003", - "question": "Есть ли незакрытые позиции по договору 15/24 на 2020-12-31", + "question": "Есть ли незакрытые позиции по договору 24/15 на 2020-12-31", "session": null, "session_id": "asst-2026-04-02_Address_Slang_Live_Stress_2026-04-02_11-48-09-oi003", "status_code": 200, @@ -437,7 +437,7 @@ "extracted_filters": { "sort": "period_desc", "limit": 20, - "contract": "15/24", + "contract": "24/15", "as_of_date": "2020-12-31" }, "missing_required_filters": [], @@ -446,8 +446,8 @@ "account_scope_mode": "preferred", "account_scope_fallback_applied": true, "anchor_type": "contract", - "anchor_value_raw": "15/24", - "anchor_value_resolved": "15/24", + "anchor_value_raw": "24/15", + "anchor_value_resolved": "24/15", "resolver_confidence": "medium", "ambiguity_count": 0, "match_failure_stage": "materialized_but_not_anchor_matched", @@ -490,10 +490,10 @@ "llm_decomposition_attempted": true, "llm_provider_used": "local", "llm_decomposition_trace_id": "FxjH16DJXAPNHq", - "llm_decomposition_effective_message": "Проверить наличие незакрытых позиций по договору 15/24 на конец периода 2020-12-31.", + "llm_decomposition_effective_message": "Проверить наличие незакрытых позиций по договору 24/15 на конец периода 2020-12-31.", "llm_decomposition_reason": "normalized_fragment_applied", "fallback_rule_hit": null, - "sanitized_user_message": "есть ли незакрытые позиции по договору 15/24 на 2020-12-31", + "sanitized_user_message": "есть ли незакрытые позиции по договору 24/15 на 2020-12-31", "tool_gate_decision": "run_address_lane", "tool_gate_reason": "address_mode_classifier_detected", "answer_structure_v11": null, @@ -503,7 +503,7 @@ "trace_id": "FxjH16DJXAPNHq", "prompt_version": "normalizer_v2_0_2", "applied": true, - "effective_message": "Проверить наличие незакрытых позиций по договору 15/24 на конец периода 2020-12-31." + "effective_message": "Проверить наличие незакрытых позиций по договору 24/15 на конец периода 2020-12-31." } }, "error_code": null, @@ -512,7 +512,7 @@ { "index": 4, "id": "OI004", - "question": "Покажи открытые позиции по договору 15/24", + "question": "Покажи открытые позиции по договору 24/15", "session": null, "session_id": "asst-2026-04-02_Address_Slang_Live_Stress_2026-04-02_11-48-09-oi004", "status_code": 200, @@ -588,7 +588,7 @@ "extracted_filters": { "sort": "period_desc", "limit": 20, - "contract": "15/24" + "contract": "24/15" }, "missing_required_filters": [], "selected_recipe": "address_open_items_by_party_or_contract_v1", @@ -596,8 +596,8 @@ "account_scope_mode": "preferred", "account_scope_fallback_applied": true, "anchor_type": "contract", - "anchor_value_raw": "15/24", - "anchor_value_resolved": "15/24", + "anchor_value_raw": "24/15", + "anchor_value_resolved": "24/15", "resolver_confidence": "medium", "ambiguity_count": 0, "match_failure_stage": "materialized_but_not_anchor_matched", @@ -640,10 +640,10 @@ "llm_decomposition_attempted": true, "llm_provider_used": "local", "llm_decomposition_trace_id": "Q08pHjSGHcJ8sq", - "llm_decomposition_effective_message": "Показать открытые позиции по договору 15/24.", + "llm_decomposition_effective_message": "Показать открытые позиции по договору 24/15.", "llm_decomposition_reason": "normalized_fragment_applied", "fallback_rule_hit": null, - "sanitized_user_message": "покажи открытые позиции по договору 15/24", + "sanitized_user_message": "покажи открытые позиции по договору 24/15", "tool_gate_decision": "run_address_lane", "tool_gate_reason": "address_mode_classifier_detected", "answer_structure_v11": null, @@ -653,7 +653,7 @@ "trace_id": "Q08pHjSGHcJ8sq", "prompt_version": "normalizer_v2_0_2", "applied": true, - "effective_message": "Показать открытые позиции по договору 15/24." + "effective_message": "Показать открытые позиции по договору 24/15." } }, "error_code": null, @@ -813,7 +813,7 @@ { "index": 6, "id": "OI006", - "question": "Покажи документы по договору 15/24 за 2020", + "question": "Покажи документы по договору 24/15 за 2020", "session": null, "session_id": "asst-2026-04-02_Address_Slang_Live_Stress_2026-04-02_11-48-09-oi006", "status_code": 200, @@ -890,7 +890,7 @@ "extracted_filters": { "sort": "period_desc", "limit": 20, - "contract": "15/24", + "contract": "24/15", "period_from": "2020-01-01", "period_to": "2020-12-31" }, @@ -900,8 +900,8 @@ "account_scope_mode": "preferred", "account_scope_fallback_applied": false, "anchor_type": "contract", - "anchor_value_raw": "15/24", - "anchor_value_resolved": "15/24", + "anchor_value_raw": "24/15", + "anchor_value_resolved": "24/15", "resolver_confidence": "medium", "ambiguity_count": 0, "match_failure_stage": "none", @@ -944,10 +944,10 @@ "llm_decomposition_attempted": true, "llm_provider_used": "local", "llm_decomposition_trace_id": "lTVeZm6M0trsC0", - "llm_decomposition_effective_message": "Показать документы по договору 15/24 за период 2020 года.", + "llm_decomposition_effective_message": "Показать документы по договору 24/15 за период 2020 года.", "llm_decomposition_reason": "normalized_fragment_applied", "fallback_rule_hit": null, - "sanitized_user_message": "покажи документы по договору 15/24 за 2020", + "sanitized_user_message": "покажи документы по договору 24/15 за 2020", "tool_gate_decision": "run_address_lane", "tool_gate_reason": "address_mode_classifier_detected", "answer_structure_v11": null, @@ -957,7 +957,7 @@ "trace_id": "lTVeZm6M0trsC0", "prompt_version": "normalizer_v2_0_2", "applied": true, - "effective_message": "Показать документы по договору 15/24 за период 2020 года." + "effective_message": "Показать документы по договору 24/15 за период 2020 года." } }, "error_code": null, @@ -966,7 +966,7 @@ { "index": 7, "id": "OI007", - "question": "Покажи банковские операции по договору 15/24", + "question": "Покажи банковские операции по договору 24/15", "session": null, "session_id": "asst-2026-04-02_Address_Slang_Live_Stress_2026-04-02_11-48-09-oi007", "status_code": 200, @@ -1043,7 +1043,7 @@ "sort": "period_desc", "limit": 20, "account": "51", - "contract": "15/24" + "contract": "24/15" }, "missing_required_filters": [], "selected_recipe": "address_bank_operations_by_contract_v1", @@ -1051,8 +1051,8 @@ "account_scope_mode": "preferred", "account_scope_fallback_applied": false, "anchor_type": "contract", - "anchor_value_raw": "15/24", - "anchor_value_resolved": "15/24", + "anchor_value_raw": "24/15", + "anchor_value_resolved": "24/15", "resolver_confidence": "medium", "ambiguity_count": 0, "match_failure_stage": "none", @@ -1095,10 +1095,10 @@ "llm_decomposition_attempted": true, "llm_provider_used": "local", "llm_decomposition_trace_id": "uyQnBNYEbBr30X", - "llm_decomposition_effective_message": "Показать банковские операции (счета 51, 60, 62) связанные с договором 15/24.", + "llm_decomposition_effective_message": "Показать банковские операции (счета 51, 60, 62) связанные с договором 24/15.", "llm_decomposition_reason": "normalized_fragment_applied", "fallback_rule_hit": null, - "sanitized_user_message": "покажи банковские операции по договору 15/24", + "sanitized_user_message": "покажи банковские операции по договору 24/15", "tool_gate_decision": "run_address_lane", "tool_gate_reason": "address_mode_classifier_detected", "answer_structure_v11": null, @@ -1108,7 +1108,7 @@ "trace_id": "uyQnBNYEbBr30X", "prompt_version": "normalizer_v2_0_2", "applied": true, - "effective_message": "Показать банковские операции (счета 51, 60, 62) связанные с договором 15/24." + "effective_message": "Показать банковские операции (счета 51, 60, 62) связанные с договором 24/15." } }, "error_code": null, diff --git a/docs/ADDRESS/runs/2026-04-02_Address_Slang_Live_Stress_2026-04-02_11-48-09/response_audit.md b/docs/ADDRESS/runs/2026-04-02_Address_Slang_Live_Stress_2026-04-02_11-48-09/response_audit.md index 2674f07..96dfb52 100644 --- a/docs/ADDRESS/runs/2026-04-02_Address_Slang_Live_Stress_2026-04-02_11-48-09/response_audit.md +++ b/docs/ADDRESS/runs/2026-04-02_Address_Slang_Live_Stress_2026-04-02_11-48-09/response_audit.md @@ -4,8 +4,8 @@ |---|---|---|---|---|---|---|---| | OI001 | False | likely_blocked_route | partial_coverage | open_items_by_counterparty_or_contract | empty_match | Покажи хвосты по контрагенту СВК на 2020-12-31 | В live-данных по текущему фильтру записи не найдены. | | OI002 | True | ok_or_factual | factual | open_items_by_counterparty_or_contract | None | Покажи хвосты по контрагенту СВК на конец периода 2020-12-31 | Точный якорь не подтвердился в live-строках даже после расширения до 1000; показаны ближайшие доступные позиции по счетам 60/62/76. | -| OI003 | False | likely_blocked_route | partial_coverage | open_items_by_counterparty_or_contract | empty_match | Есть ли незакрытые позиции по договору 15/24 на 2020-12-31 | В live-данных по текущему фильтру записи не найдены. | -| OI004 | False | likely_blocked_route | partial_coverage | open_items_by_counterparty_or_contract | empty_match | Покажи открытые позиции по договору 15/24 | В live-данных по текущему фильтру записи не найдены. | +| OI003 | False | likely_blocked_route | partial_coverage | open_items_by_counterparty_or_contract | empty_match | Есть ли незакрытые позиции по договору 24/15 на 2020-12-31 | В live-данных по текущему фильтру записи не найдены. | +| OI004 | False | likely_blocked_route | partial_coverage | open_items_by_counterparty_or_contract | empty_match | Покажи открытые позиции по договору 24/15 | В live-данных по текущему фильтру записи не найдены. | | OI005 | True | ok_or_factual | factual | list_open_contracts | None | Покажи незакрытые договоры на 2020-12-31 | Собраны кандидаты по незакрытым договорным позициям (по live движениям 60/62/76). | -| OI006 | True | ok_or_factual | factual | list_documents_by_contract | None | Покажи документы по договору 15/24 за 2020 | Период сохранен. Глубина live-выборки автоматически расширена до 1000 строк. | -| OI007 | True | ok_or_factual | factual | bank_operations_by_contract | None | Покажи банковские операции по договору 15/24 | Собран список банковских операций по договору (live address lane). | +| OI006 | True | ok_or_factual | factual | list_documents_by_contract | None | Покажи документы по договору 24/15 за 2020 | Период сохранен. Глубина live-выборки автоматически расширена до 1000 строк. | +| OI007 | True | ok_or_factual | factual | bank_operations_by_contract | None | Покажи банковские операции по договору 24/15 | Собран список банковских операций по договору (live address lane). | diff --git a/docs/ADDRESS/runs/2026-04-02_Address_Slang_Live_Stress_2026-04-02_11-54-08/full_live_results.json b/docs/ADDRESS/runs/2026-04-02_Address_Slang_Live_Stress_2026-04-02_11-54-08/full_live_results.json index 6be5b20..f372fc4 100644 --- a/docs/ADDRESS/runs/2026-04-02_Address_Slang_Live_Stress_2026-04-02_11-54-08/full_live_results.json +++ b/docs/ADDRESS/runs/2026-04-02_Address_Slang_Live_Stress_2026-04-02_11-54-08/full_live_results.json @@ -358,7 +358,7 @@ { "index": 3, "id": "OI003", - "question": "Есть ли незакрытые позиции по договору 15/24 на 2020-12-31", + "question": "Есть ли незакрытые позиции по договору 24/15 на 2020-12-31", "session": null, "session_id": "asst-2026-04-02_Address_Slang_Live_Stress_2026-04-02_11-54-08-oi003", "status_code": 200, @@ -435,7 +435,7 @@ "extracted_filters": { "sort": "period_desc", "limit": 20, - "contract": "15/24", + "contract": "24/15", "as_of_date": "2020-12-31" }, "missing_required_filters": [], @@ -444,8 +444,8 @@ "account_scope_mode": "preferred", "account_scope_fallback_applied": true, "anchor_type": "contract", - "anchor_value_raw": "15/24", - "anchor_value_resolved": "15/24", + "anchor_value_raw": "24/15", + "anchor_value_resolved": "24/15", "resolver_confidence": "medium", "ambiguity_count": 0, "match_failure_stage": "materialized_but_not_anchor_matched", @@ -488,10 +488,10 @@ "llm_decomposition_attempted": true, "llm_provider_used": "local", "llm_decomposition_trace_id": "lox9X2_JZd0fwF", - "llm_decomposition_effective_message": "Проверить наличие незакрытых позиций по договору 15/24 на конец периода 2020-12-31.", + "llm_decomposition_effective_message": "Проверить наличие незакрытых позиций по договору 24/15 на конец периода 2020-12-31.", "llm_decomposition_reason": "normalized_fragment_applied", "fallback_rule_hit": null, - "sanitized_user_message": "есть ли незакрытые позиции по договору 15/24 на 2020-12-31", + "sanitized_user_message": "есть ли незакрытые позиции по договору 24/15 на 2020-12-31", "tool_gate_decision": "run_address_lane", "tool_gate_reason": "address_mode_classifier_detected", "answer_structure_v11": null, @@ -501,7 +501,7 @@ "trace_id": "lox9X2_JZd0fwF", "prompt_version": "normalizer_v2_0_2", "applied": true, - "effective_message": "Проверить наличие незакрытых позиций по договору 15/24 на конец периода 2020-12-31." + "effective_message": "Проверить наличие незакрытых позиций по договору 24/15 на конец периода 2020-12-31." } }, "error_code": null, @@ -510,7 +510,7 @@ { "index": 4, "id": "OI004", - "question": "Покажи открытые позиции по договору 15/24", + "question": "Покажи открытые позиции по договору 24/15", "session": null, "session_id": "asst-2026-04-02_Address_Slang_Live_Stress_2026-04-02_11-54-08-oi004", "status_code": 200, @@ -588,7 +588,7 @@ "extracted_filters": { "sort": "period_desc", "limit": 20, - "contract": "15/24" + "contract": "24/15" }, "missing_required_filters": [], "selected_recipe": "address_open_items_by_party_or_contract_v1", @@ -596,8 +596,8 @@ "account_scope_mode": "preferred", "account_scope_fallback_applied": false, "anchor_type": "contract", - "anchor_value_raw": "15/24", - "anchor_value_resolved": "15/24", + "anchor_value_raw": "24/15", + "anchor_value_resolved": "24/15", "resolver_confidence": "medium", "ambiguity_count": 0, "match_failure_stage": "materialized_but_not_anchor_matched", @@ -640,10 +640,10 @@ "llm_decomposition_attempted": true, "llm_provider_used": "local", "llm_decomposition_trace_id": "SHrrkLC7tB0YpC", - "llm_decomposition_effective_message": "Показать открытые позиции по договору 15/24.", + "llm_decomposition_effective_message": "Показать открытые позиции по договору 24/15.", "llm_decomposition_reason": "normalized_fragment_applied", "fallback_rule_hit": null, - "sanitized_user_message": "покажи открытые позиции по договору 15/24", + "sanitized_user_message": "покажи открытые позиции по договору 24/15", "tool_gate_decision": "run_address_lane", "tool_gate_reason": "address_mode_classifier_detected", "answer_structure_v11": null, @@ -653,7 +653,7 @@ "trace_id": "SHrrkLC7tB0YpC", "prompt_version": "normalizer_v2_0_2", "applied": true, - "effective_message": "Показать открытые позиции по договору 15/24." + "effective_message": "Показать открытые позиции по договору 24/15." } }, "error_code": null, @@ -813,7 +813,7 @@ { "index": 6, "id": "OI006", - "question": "Покажи документы по договору 15/24 за 2020", + "question": "Покажи документы по договору 24/15 за 2020", "session": null, "session_id": "asst-2026-04-02_Address_Slang_Live_Stress_2026-04-02_11-54-08-oi006", "status_code": 200, @@ -890,7 +890,7 @@ "extracted_filters": { "sort": "period_desc", "limit": 20, - "contract": "15/24", + "contract": "24/15", "period_from": "2020-01-01", "period_to": "2020-12-31" }, @@ -900,8 +900,8 @@ "account_scope_mode": "preferred", "account_scope_fallback_applied": false, "anchor_type": "contract", - "anchor_value_raw": "15/24", - "anchor_value_resolved": "15/24", + "anchor_value_raw": "24/15", + "anchor_value_resolved": "24/15", "resolver_confidence": "medium", "ambiguity_count": 0, "match_failure_stage": "none", @@ -944,10 +944,10 @@ "llm_decomposition_attempted": true, "llm_provider_used": "local", "llm_decomposition_trace_id": "n5gJB1Sp5fIrF5", - "llm_decomposition_effective_message": "Показать документы по договору 15/24 за период 2020 года.", + "llm_decomposition_effective_message": "Показать документы по договору 24/15 за период 2020 года.", "llm_decomposition_reason": "normalized_fragment_applied", "fallback_rule_hit": null, - "sanitized_user_message": "покажи документы по договору 15/24 за 2020", + "sanitized_user_message": "покажи документы по договору 24/15 за 2020", "tool_gate_decision": "run_address_lane", "tool_gate_reason": "address_mode_classifier_detected", "answer_structure_v11": null, @@ -957,7 +957,7 @@ "trace_id": "n5gJB1Sp5fIrF5", "prompt_version": "normalizer_v2_0_2", "applied": true, - "effective_message": "Показать документы по договору 15/24 за период 2020 года." + "effective_message": "Показать документы по договору 24/15 за период 2020 года." } }, "error_code": null, @@ -966,7 +966,7 @@ { "index": 7, "id": "OI007", - "question": "Покажи банковские операции по договору 15/24", + "question": "Покажи банковские операции по договору 24/15", "session": null, "session_id": "asst-2026-04-02_Address_Slang_Live_Stress_2026-04-02_11-54-08-oi007", "status_code": 200, @@ -1043,7 +1043,7 @@ "sort": "period_desc", "limit": 20, "account": "51", - "contract": "15/24" + "contract": "24/15" }, "missing_required_filters": [], "selected_recipe": "address_bank_operations_by_contract_v1", @@ -1051,8 +1051,8 @@ "account_scope_mode": "preferred", "account_scope_fallback_applied": false, "anchor_type": "contract", - "anchor_value_raw": "15/24", - "anchor_value_resolved": "15/24", + "anchor_value_raw": "24/15", + "anchor_value_resolved": "24/15", "resolver_confidence": "medium", "ambiguity_count": 0, "match_failure_stage": "none", @@ -1095,10 +1095,10 @@ "llm_decomposition_attempted": true, "llm_provider_used": "local", "llm_decomposition_trace_id": "PpfY9V3xxEAch5", - "llm_decomposition_effective_message": "Показать банковские операции (счета 51, 60, 62) связанные с договором 15/24.", + "llm_decomposition_effective_message": "Показать банковские операции (счета 51, 60, 62) связанные с договором 24/15.", "llm_decomposition_reason": "normalized_fragment_applied", "fallback_rule_hit": null, - "sanitized_user_message": "покажи банковские операции по договору 15/24", + "sanitized_user_message": "покажи банковские операции по договору 24/15", "tool_gate_decision": "run_address_lane", "tool_gate_reason": "address_mode_classifier_detected", "answer_structure_v11": null, @@ -1108,7 +1108,7 @@ "trace_id": "PpfY9V3xxEAch5", "prompt_version": "normalizer_v2_0_2", "applied": true, - "effective_message": "Показать банковские операции (счета 51, 60, 62) связанные с договором 15/24." + "effective_message": "Показать банковские операции (счета 51, 60, 62) связанные с договором 24/15." } }, "error_code": null, diff --git a/docs/ADDRESS/runs/2026-04-02_Address_Slang_Live_Stress_2026-04-02_11-54-08/response_audit.md b/docs/ADDRESS/runs/2026-04-02_Address_Slang_Live_Stress_2026-04-02_11-54-08/response_audit.md index 6804ad2..5da9892 100644 --- a/docs/ADDRESS/runs/2026-04-02_Address_Slang_Live_Stress_2026-04-02_11-54-08/response_audit.md +++ b/docs/ADDRESS/runs/2026-04-02_Address_Slang_Live_Stress_2026-04-02_11-54-08/response_audit.md @@ -4,8 +4,8 @@ |---|---|---|---|---|---|---|---| | OI001 | True | ok_or_factual | factual | open_items_by_counterparty_or_contract | None | Покажи хвосты по контрагенту СВК на 2020-12-31 | Точный якорь не подтвердился в live-строках даже после расширения до 1000; показаны ближайшие доступные позиции по счетам 60/62/76. | | OI002 | True | ok_or_factual | factual | open_items_by_counterparty_or_contract | None | Покажи хвосты по контрагенту СВК на конец периода 2020-12-31 | Точный якорь не подтвердился в live-строках даже после расширения до 1000; показаны ближайшие доступные позиции по счетам 60/62/76. | -| OI003 | True | ok_or_factual | factual | open_items_by_counterparty_or_contract | None | Есть ли незакрытые позиции по договору 15/24 на 2020-12-31 | Точный якорь не подтвердился в текущем окне live-данных; показаны ближайшие доступные позиции по счетам 60/62/76. | -| OI004 | True | ok_or_factual | factual | open_items_by_counterparty_or_contract | None | Покажи открытые позиции по договору 15/24 | Точный якорь не подтвердился в live-строках даже после расширения до 1000; показаны ближайшие доступные позиции по счетам 60/62/76. | +| OI003 | True | ok_or_factual | factual | open_items_by_counterparty_or_contract | None | Есть ли незакрытые позиции по договору 24/15 на 2020-12-31 | Точный якорь не подтвердился в текущем окне live-данных; показаны ближайшие доступные позиции по счетам 60/62/76. | +| OI004 | True | ok_or_factual | factual | open_items_by_counterparty_or_contract | None | Покажи открытые позиции по договору 24/15 | Точный якорь не подтвердился в live-строках даже после расширения до 1000; показаны ближайшие доступные позиции по счетам 60/62/76. | | OI005 | True | ok_or_factual | factual | list_open_contracts | None | Покажи незакрытые договоры на 2020-12-31 | Собраны кандидаты по незакрытым договорным позициям (по live движениям 60/62/76). | -| OI006 | True | ok_or_factual | factual | list_documents_by_contract | None | Покажи документы по договору 15/24 за 2020 | Период сохранен. Глубина live-выборки автоматически расширена до 1000 строк. | -| OI007 | True | ok_or_factual | factual | bank_operations_by_contract | None | Покажи банковские операции по договору 15/24 | Собран список банковских операций по договору (live address lane). | +| OI006 | True | ok_or_factual | factual | list_documents_by_contract | None | Покажи документы по договору 24/15 за 2020 | Период сохранен. Глубина live-выборки автоматически расширена до 1000 строк. | +| OI007 | True | ok_or_factual | factual | bank_operations_by_contract | None | Покажи банковские операции по договору 24/15 | Собран список банковских операций по договору (live address lane). | diff --git a/docs/ADDRESS/runs/2026-04-02_Address_Slang_Live_Stress_2026-04-02_12-13-28/failures_only.json b/docs/ADDRESS/runs/2026-04-02_Address_Slang_Live_Stress_2026-04-02_12-13-28/failures_only.json index 312d3bc..ab5fd99 100644 --- a/docs/ADDRESS/runs/2026-04-02_Address_Slang_Live_Stress_2026-04-02_12-13-28/failures_only.json +++ b/docs/ADDRESS/runs/2026-04-02_Address_Slang_Live_Stress_2026-04-02_12-13-28/failures_only.json @@ -1495,7 +1495,7 @@ { "index": 43, "id": "S043", - "question": "покажи документы по договору 15/24 за 2020", + "question": "покажи документы по договору 24/15 за 2020", "session": null, "session_id": "asst-2026-04-02_Address_Slang_Live_Stress_2026-04-02_12-13-28-s043", "status_code": 200, @@ -1571,7 +1571,7 @@ "extracted_filters": { "sort": "period_desc", "limit": 20, - "contract": "15/24", + "contract": "24/15", "period_from": "2020-01-01", "period_to": "2020-12-31" }, @@ -1581,8 +1581,8 @@ "account_scope_mode": "preferred", "account_scope_fallback_applied": true, "anchor_type": "contract", - "anchor_value_raw": "15/24", - "anchor_value_resolved": "15/24", + "anchor_value_raw": "24/15", + "anchor_value_resolved": "24/15", "resolver_confidence": "medium", "ambiguity_count": 0, "match_failure_stage": "materialized_but_not_anchor_matched", @@ -1625,10 +1625,10 @@ "llm_decomposition_attempted": true, "llm_provider_used": "local", "llm_decomposition_trace_id": "Fe3CVqjlvBoh2J", - "llm_decomposition_effective_message": "Показать документы по договору 15/24 за период 2020 года.", + "llm_decomposition_effective_message": "Показать документы по договору 24/15 за период 2020 года.", "llm_decomposition_reason": "normalized_fragment_applied", "fallback_rule_hit": null, - "sanitized_user_message": "покажи документы по договору 15/24 за 2020", + "sanitized_user_message": "покажи документы по договору 24/15 за 2020", "tool_gate_decision": "run_address_lane", "tool_gate_reason": "address_mode_classifier_detected", "answer_structure_v11": null, @@ -1638,7 +1638,7 @@ "trace_id": "Fe3CVqjlvBoh2J", "prompt_version": "normalizer_v2_0_2", "applied": true, - "effective_message": "Показать документы по договору 15/24 за период 2020 года." + "effective_message": "Показать документы по договору 24/15 за период 2020 года." } }, "error_code": null, @@ -1647,7 +1647,7 @@ { "index": 44, "id": "S044", - "question": "доки по дог. 15/24 за 2020", + "question": "доки по дог. 24/15 за 2020", "session": null, "session_id": "asst-2026-04-02_Address_Slang_Live_Stress_2026-04-02_12-13-28-s044", "status_code": 200, @@ -1722,7 +1722,7 @@ "extracted_filters": { "sort": "period_desc", "limit": 20, - "contract": "15/24", + "contract": "24/15", "period_from": "2020-01-01", "period_to": "2020-12-31" }, @@ -1732,8 +1732,8 @@ "account_scope_mode": "preferred", "account_scope_fallback_applied": true, "anchor_type": "contract", - "anchor_value_raw": "15/24", - "anchor_value_resolved": "15/24", + "anchor_value_raw": "24/15", + "anchor_value_resolved": "24/15", "resolver_confidence": "medium", "ambiguity_count": 0, "match_failure_stage": "materialized_but_not_anchor_matched", @@ -1776,10 +1776,10 @@ "llm_decomposition_attempted": true, "llm_provider_used": "local", "llm_decomposition_trace_id": "hyH61_JdHo-7NE", - "llm_decomposition_effective_message": "Документы по договору 15/24 за 2020 год.", + "llm_decomposition_effective_message": "Документы по договору 24/15 за 2020 год.", "llm_decomposition_reason": "normalized_fragment_applied", "fallback_rule_hit": null, - "sanitized_user_message": "доки по договор 15/24 за 2020", + "sanitized_user_message": "доки по договор 24/15 за 2020", "tool_gate_decision": "run_address_lane", "tool_gate_reason": "address_mode_classifier_detected", "answer_structure_v11": null, @@ -1789,7 +1789,7 @@ "trace_id": "hyH61_JdHo-7NE", "prompt_version": "normalizer_v2_0_2", "applied": true, - "effective_message": "Документы по договору 15/24 за 2020 год." + "effective_message": "Документы по договору 24/15 за 2020 год." } }, "error_code": null, @@ -1798,7 +1798,7 @@ { "index": 46, "id": "S046", - "question": "docs by contract 15/24 year 2020", + "question": "docs by contract 24/15 year 2020", "session": null, "session_id": "asst-2026-04-02_Address_Slang_Live_Stress_2026-04-02_12-13-28-s046", "status_code": 200, @@ -1873,7 +1873,7 @@ "extracted_filters": { "sort": "period_desc", "limit": 20, - "contract": "15/24 year 2020", + "contract": "24/15 year 2020", "period_from": "2020-01-01", "period_to": "2020-12-31" }, @@ -1883,8 +1883,8 @@ "account_scope_mode": "preferred", "account_scope_fallback_applied": true, "anchor_type": "contract", - "anchor_value_raw": "15/24 year 2020", - "anchor_value_resolved": "15/24 year 2020", + "anchor_value_raw": "24/15 year 2020", + "anchor_value_resolved": "24/15 year 2020", "resolver_confidence": "medium", "ambiguity_count": 0, "match_failure_stage": "materialized_but_not_anchor_matched", @@ -1927,7 +1927,7 @@ "llm_decomposition_attempted": true, "llm_provider_used": "local", "llm_decomposition_trace_id": "BGJ1luYFn8UJmS", - "llm_decomposition_effective_message": "docs by contract 15/24 year 2020", + "llm_decomposition_effective_message": "docs by contract 24/15 year 2020", "llm_decomposition_reason": "normalized_fragment_same", "fallback_rule_hit": null, "sanitized_user_message": "документы by contract 15/2024 год 2020", @@ -1940,7 +1940,7 @@ "trace_id": "BGJ1luYFn8UJmS", "prompt_version": "normalizer_v2_0_2", "applied": false, - "effective_message": "docs by contract 15/24 year 2020" + "effective_message": "docs by contract 24/15 year 2020" } }, "error_code": null, @@ -1949,7 +1949,7 @@ { "index": 49, "id": "S049", - "question": "плс документы договор №15/24", + "question": "плс документы договор №24/15", "session": null, "session_id": "asst-2026-04-02_Address_Slang_Live_Stress_2026-04-02_12-13-28-s049", "status_code": 200, @@ -2024,7 +2024,7 @@ "extracted_filters": { "sort": "period_desc", "limit": 20, - "contract": "номер 15/24" + "contract": "номер 24/15" }, "missing_required_filters": [], "selected_recipe": "address_documents_by_contract_v1", @@ -2032,8 +2032,8 @@ "account_scope_mode": "preferred", "account_scope_fallback_applied": false, "anchor_type": "contract", - "anchor_value_raw": "номер 15/24", - "anchor_value_resolved": "номер 15/24", + "anchor_value_raw": "номер 24/15", + "anchor_value_resolved": "номер 24/15", "resolver_confidence": "medium", "ambiguity_count": 0, "match_failure_stage": "materialized_but_not_anchor_matched", @@ -2076,10 +2076,10 @@ "llm_decomposition_attempted": true, "llm_provider_used": "local", "llm_decomposition_trace_id": "blEeG2Y5m0r2kn", - "llm_decomposition_effective_message": "пожалуйста, предоставьте документы по договору номер 15/24", + "llm_decomposition_effective_message": "пожалуйста, предоставьте документы по договору номер 24/15", "llm_decomposition_reason": "normalized_fragment_applied", "fallback_rule_hit": null, - "sanitized_user_message": "документы договор №15/24", + "sanitized_user_message": "документы договор №24/15", "tool_gate_decision": "run_address_lane", "tool_gate_reason": "address_mode_classifier_detected", "answer_structure_v11": null, @@ -2089,7 +2089,7 @@ "trace_id": "blEeG2Y5m0r2kn", "prompt_version": "normalizer_v2_0_2", "applied": true, - "effective_message": "пожалуйста, предоставьте документы по договору номер 15/24" + "effective_message": "пожалуйста, предоставьте документы по договору номер 24/15" } }, "error_code": null, @@ -2098,7 +2098,7 @@ { "index": 53, "id": "S053", - "question": "выписка по договору 15/24", + "question": "выписка по договору 24/15", "session": null, "session_id": "asst-2026-04-02_Address_Slang_Live_Stress_2026-04-02_12-13-28-s053", "status_code": 200, @@ -2174,7 +2174,7 @@ "extracted_filters": { "sort": "period_desc", "limit": 20, - "contract": "15/24" + "contract": "24/15" }, "missing_required_filters": [], "selected_recipe": "address_bank_operations_by_contract_v1", @@ -2182,8 +2182,8 @@ "account_scope_mode": "preferred", "account_scope_fallback_applied": false, "anchor_type": "contract", - "anchor_value_raw": "15/24", - "anchor_value_resolved": "15/24", + "anchor_value_raw": "24/15", + "anchor_value_resolved": "24/15", "resolver_confidence": "medium", "ambiguity_count": 0, "match_failure_stage": "none", @@ -2215,10 +2215,10 @@ "llm_decomposition_attempted": true, "llm_provider_used": "local", "llm_decomposition_trace_id": "Z-Swe4ZgmjjnxC", - "llm_decomposition_effective_message": "statement by contract 15/24", + "llm_decomposition_effective_message": "statement by contract 24/15", "llm_decomposition_reason": "normalized_fragment_applied", "fallback_rule_hit": null, - "sanitized_user_message": "выписка по договору 15/24", + "sanitized_user_message": "выписка по договору 24/15", "tool_gate_decision": "run_address_lane", "tool_gate_reason": "address_mode_classifier_detected", "answer_structure_v11": null, @@ -2228,7 +2228,7 @@ "trace_id": "Z-Swe4ZgmjjnxC", "prompt_version": "normalizer_v2_0_2", "applied": true, - "effective_message": "statement by contract 15/24" + "effective_message": "statement by contract 24/15" } }, "error_code": null, @@ -2237,7 +2237,7 @@ { "index": 54, "id": "S054", - "question": "bank ops by contract 15/24", + "question": "bank ops by contract 24/15", "session": null, "session_id": "asst-2026-04-02_Address_Slang_Live_Stress_2026-04-02_12-13-28-s054", "status_code": 200, @@ -2312,7 +2312,7 @@ "extracted_filters": { "sort": "period_desc", "limit": 20, - "contract": "15/24 в банковском учете" + "contract": "24/15 в банковском учете" }, "missing_required_filters": [], "selected_recipe": "address_bank_operations_by_contract_v1", @@ -2320,8 +2320,8 @@ "account_scope_mode": "preferred", "account_scope_fallback_applied": false, "anchor_type": "contract", - "anchor_value_raw": "15/24 в банковском учете", - "anchor_value_resolved": "15/24 в банковском учете", + "anchor_value_raw": "24/15 в банковском учете", + "anchor_value_resolved": "24/15 в банковском учете", "resolver_confidence": "medium", "ambiguity_count": 0, "match_failure_stage": "materialized_but_not_anchor_matched", @@ -2364,10 +2364,10 @@ "llm_decomposition_attempted": true, "llm_provider_used": "local", "llm_decomposition_trace_id": "Vl8EDhT4f6Wzj7", - "llm_decomposition_effective_message": "операции по договору 15/24 в банковском учете", + "llm_decomposition_effective_message": "операции по договору 24/15 в банковском учете", "llm_decomposition_reason": "normalized_fragment_applied", "fallback_rule_hit": null, - "sanitized_user_message": "bank ops by contract 15/24", + "sanitized_user_message": "bank ops by contract 24/15", "tool_gate_decision": "run_address_lane", "tool_gate_reason": "address_mode_classifier_detected", "answer_structure_v11": null, @@ -2377,7 +2377,7 @@ "trace_id": "Vl8EDhT4f6Wzj7", "prompt_version": "normalizer_v2_0_2", "applied": true, - "effective_message": "операции по договору 15/24 в банковском учете" + "effective_message": "операции по договору 24/15 в банковском учете" } }, "error_code": null, @@ -4014,7 +4014,7 @@ { "index": 89, "id": "X029", - "question": "доки по договору 15/24 за 2020", + "question": "доки по договору 24/15 за 2020", "session": null, "session_id": "asst-2026-04-02_Address_Slang_Live_Stress_2026-04-02_12-13-28-x029", "status_code": 200, @@ -4089,7 +4089,7 @@ "extracted_filters": { "sort": "period_desc", "limit": 20, - "contract": "15/24", + "contract": "24/15", "period_from": "2020-01-01", "period_to": "2020-12-31" }, @@ -4099,8 +4099,8 @@ "account_scope_mode": "preferred", "account_scope_fallback_applied": true, "anchor_type": "contract", - "anchor_value_raw": "15/24", - "anchor_value_resolved": "15/24", + "anchor_value_raw": "24/15", + "anchor_value_resolved": "24/15", "resolver_confidence": "medium", "ambiguity_count": 0, "match_failure_stage": "materialized_but_not_anchor_matched", @@ -4143,10 +4143,10 @@ "llm_decomposition_attempted": true, "llm_provider_used": "local", "llm_decomposition_trace_id": "drEOCWqCFV9i6p", - "llm_decomposition_effective_message": "Документы по договору 15/24 за 2020 год.", + "llm_decomposition_effective_message": "Документы по договору 24/15 за 2020 год.", "llm_decomposition_reason": "normalized_fragment_applied", "fallback_rule_hit": null, - "sanitized_user_message": "доки по договору 15/24 за 2020", + "sanitized_user_message": "доки по договору 24/15 за 2020", "tool_gate_decision": "run_address_lane", "tool_gate_reason": "address_mode_classifier_detected", "answer_structure_v11": null, @@ -4156,7 +4156,7 @@ "trace_id": "drEOCWqCFV9i6p", "prompt_version": "normalizer_v2_0_2", "applied": true, - "effective_message": "Документы по договору 15/24 за 2020 год." + "effective_message": "Документы по договору 24/15 за 2020 год." } }, "error_code": null, @@ -4165,7 +4165,7 @@ { "index": 91, "id": "X031", - "question": "docs by contract 15/24 2020", + "question": "docs by contract 24/15 2020", "session": null, "session_id": "asst-2026-04-02_Address_Slang_Live_Stress_2026-04-02_12-13-28-x031", "status_code": 200, @@ -4240,7 +4240,7 @@ "extracted_filters": { "sort": "period_desc", "limit": 20, - "contract": "15/24 2020", + "contract": "24/15 2020", "period_from": "2020-01-01", "period_to": "2020-12-31" }, @@ -4250,8 +4250,8 @@ "account_scope_mode": "preferred", "account_scope_fallback_applied": true, "anchor_type": "contract", - "anchor_value_raw": "15/24 2020", - "anchor_value_resolved": "15/24 2020", + "anchor_value_raw": "24/15 2020", + "anchor_value_resolved": "24/15 2020", "resolver_confidence": "medium", "ambiguity_count": 0, "match_failure_stage": "materialized_but_not_anchor_matched", @@ -4294,10 +4294,10 @@ "llm_decomposition_attempted": true, "llm_provider_used": "local", "llm_decomposition_trace_id": "aRf3HQLbd-9c3H", - "llm_decomposition_effective_message": "docs by contract 15/24 2020", + "llm_decomposition_effective_message": "docs by contract 24/15 2020", "llm_decomposition_reason": "normalized_fragment_same", "fallback_rule_hit": null, - "sanitized_user_message": "документы by contract 15/24 2020", + "sanitized_user_message": "документы by contract 24/15 2020", "tool_gate_decision": "run_address_lane", "tool_gate_reason": "address_mode_classifier_detected", "answer_structure_v11": null, @@ -4307,7 +4307,7 @@ "trace_id": "aRf3HQLbd-9c3H", "prompt_version": "normalizer_v2_0_2", "applied": false, - "effective_message": "docs by contract 15/24 2020" + "effective_message": "docs by contract 24/15 2020" } }, "error_code": null, @@ -4316,7 +4316,7 @@ { "index": 93, "id": "X033", - "question": "договор 15/24 выведи доки", + "question": "договор 24/15 выведи доки", "session": null, "session_id": "asst-2026-04-02_Address_Slang_Live_Stress_2026-04-02_12-13-28-x033", "status_code": 200, @@ -4392,7 +4392,7 @@ "extracted_filters": { "sort": "period_desc", "limit": 20, - "contract": "15/24 выведите связанные документы" + "contract": "24/15 выведите связанные документы" }, "missing_required_filters": [], "selected_recipe": "address_documents_by_contract_v1", @@ -4400,8 +4400,8 @@ "account_scope_mode": "preferred", "account_scope_fallback_applied": false, "anchor_type": "contract", - "anchor_value_raw": "15/24 выведите связанные документы", - "anchor_value_resolved": "15/24 выведите связанные документы", + "anchor_value_raw": "24/15 выведите связанные документы", + "anchor_value_resolved": "24/15 выведите связанные документы", "resolver_confidence": "medium", "ambiguity_count": 0, "match_failure_stage": "materialized_but_not_anchor_matched", @@ -4444,10 +4444,10 @@ "llm_decomposition_attempted": true, "llm_provider_used": "local", "llm_decomposition_trace_id": "vc6NfAa4JPTYC6", - "llm_decomposition_effective_message": "Для договора 15/24 выведите связанные документы.", + "llm_decomposition_effective_message": "Для договора 24/15 выведите связанные документы.", "llm_decomposition_reason": "normalized_fragment_applied", "fallback_rule_hit": null, - "sanitized_user_message": "договор 15/24 выведи доки", + "sanitized_user_message": "договор 24/15 выведи доки", "tool_gate_decision": "run_address_lane", "tool_gate_reason": "address_mode_classifier_detected", "answer_structure_v11": null, @@ -4457,7 +4457,7 @@ "trace_id": "vc6NfAa4JPTYC6", "prompt_version": "normalizer_v2_0_2", "applied": true, - "effective_message": "Для договора 15/24 выведите связанные документы." + "effective_message": "Для договора 24/15 выведите связанные документы." } }, "error_code": null, @@ -4466,7 +4466,7 @@ { "index": 98, "id": "X038", - "question": "bank ops by contract 15/24", + "question": "bank ops by contract 24/15", "session": null, "session_id": "asst-2026-04-02_Address_Slang_Live_Stress_2026-04-02_12-13-28-x038", "status_code": 200, @@ -4541,7 +4541,7 @@ "extracted_filters": { "sort": "period_desc", "limit": 20, - "contract": "15/24 в банковском учете" + "contract": "24/15 в банковском учете" }, "missing_required_filters": [], "selected_recipe": "address_bank_operations_by_contract_v1", @@ -4549,8 +4549,8 @@ "account_scope_mode": "preferred", "account_scope_fallback_applied": false, "anchor_type": "contract", - "anchor_value_raw": "15/24 в банковском учете", - "anchor_value_resolved": "15/24 в банковском учете", + "anchor_value_raw": "24/15 в банковском учете", + "anchor_value_resolved": "24/15 в банковском учете", "resolver_confidence": "medium", "ambiguity_count": 0, "match_failure_stage": "materialized_but_not_anchor_matched", @@ -4593,10 +4593,10 @@ "llm_decomposition_attempted": true, "llm_provider_used": "local", "llm_decomposition_trace_id": "drkqVojckPHU-O", - "llm_decomposition_effective_message": "операции по договору 15/24 в банковском учете", + "llm_decomposition_effective_message": "операции по договору 24/15 в банковском учете", "llm_decomposition_reason": "normalized_fragment_applied", "fallback_rule_hit": null, - "sanitized_user_message": "bank ops by contract 15/24", + "sanitized_user_message": "bank ops by contract 24/15", "tool_gate_decision": "run_address_lane", "tool_gate_reason": "address_mode_classifier_detected", "answer_structure_v11": null, @@ -4606,7 +4606,7 @@ "trace_id": "drkqVojckPHU-O", "prompt_version": "normalizer_v2_0_2", "applied": true, - "effective_message": "операции по договору 15/24 в банковском учете" + "effective_message": "операции по договору 24/15 в банковском учете" } }, "error_code": null, @@ -4615,7 +4615,7 @@ { "index": 99, "id": "X039", - "question": "покажи банк опер по дог 15/24 пж", + "question": "покажи банк опер по дог 24/15 пж", "session": null, "session_id": "asst-2026-04-02_Address_Slang_Live_Stress_2026-04-02_12-13-28-x039", "status_code": 200, @@ -4692,7 +4692,7 @@ "extracted_filters": { "sort": "period_desc", "limit": 20, - "contract": "15/24" + "contract": "24/15" }, "missing_required_filters": [], "selected_recipe": "address_bank_operations_by_contract_v1", @@ -4700,8 +4700,8 @@ "account_scope_mode": "preferred", "account_scope_fallback_applied": false, "anchor_type": "contract", - "anchor_value_raw": "15/24", - "anchor_value_resolved": "15/24", + "anchor_value_raw": "24/15", + "anchor_value_resolved": "24/15", "resolver_confidence": "medium", "ambiguity_count": 0, "match_failure_stage": "none", @@ -4733,10 +4733,10 @@ "llm_decomposition_attempted": true, "llm_provider_used": "local", "llm_decomposition_trace_id": "HTObpDOoFpJ5EI", - "llm_decomposition_effective_message": "Показать банковские операции по договору 15/24.", + "llm_decomposition_effective_message": "Показать банковские операции по договору 24/15.", "llm_decomposition_reason": "normalized_fragment_applied", "fallback_rule_hit": null, - "sanitized_user_message": "покажи банк операции по договор 15/24", + "sanitized_user_message": "покажи банк операции по договор 24/15", "tool_gate_decision": "run_address_lane", "tool_gate_reason": "address_mode_classifier_detected", "answer_structure_v11": null, @@ -4746,7 +4746,7 @@ "trace_id": "HTObpDOoFpJ5EI", "prompt_version": "normalizer_v2_0_2", "applied": true, - "effective_message": "Показать банковские операции по договору 15/24." + "effective_message": "Показать банковские операции по договору 24/15." } }, "error_code": null, diff --git a/docs/ADDRESS/runs/2026-04-02_Address_Slang_Live_Stress_2026-04-02_12-13-28/full_live_results.json b/docs/ADDRESS/runs/2026-04-02_Address_Slang_Live_Stress_2026-04-02_12-13-28/full_live_results.json index 1dcd9d5..9cd832a 100644 --- a/docs/ADDRESS/runs/2026-04-02_Address_Slang_Live_Stress_2026-04-02_12-13-28/full_live_results.json +++ b/docs/ADDRESS/runs/2026-04-02_Address_Slang_Live_Stress_2026-04-02_12-13-28/full_live_results.json @@ -6373,7 +6373,7 @@ { "index": 43, "id": "S043", - "question": "покажи документы по договору 15/24 за 2020", + "question": "покажи документы по договору 24/15 за 2020", "session": null, "session_id": "asst-2026-04-02_Address_Slang_Live_Stress_2026-04-02_12-13-28-s043", "status_code": 200, @@ -6449,7 +6449,7 @@ "extracted_filters": { "sort": "period_desc", "limit": 20, - "contract": "15/24", + "contract": "24/15", "period_from": "2020-01-01", "period_to": "2020-12-31" }, @@ -6459,8 +6459,8 @@ "account_scope_mode": "preferred", "account_scope_fallback_applied": true, "anchor_type": "contract", - "anchor_value_raw": "15/24", - "anchor_value_resolved": "15/24", + "anchor_value_raw": "24/15", + "anchor_value_resolved": "24/15", "resolver_confidence": "medium", "ambiguity_count": 0, "match_failure_stage": "materialized_but_not_anchor_matched", @@ -6503,10 +6503,10 @@ "llm_decomposition_attempted": true, "llm_provider_used": "local", "llm_decomposition_trace_id": "Fe3CVqjlvBoh2J", - "llm_decomposition_effective_message": "Показать документы по договору 15/24 за период 2020 года.", + "llm_decomposition_effective_message": "Показать документы по договору 24/15 за период 2020 года.", "llm_decomposition_reason": "normalized_fragment_applied", "fallback_rule_hit": null, - "sanitized_user_message": "покажи документы по договору 15/24 за 2020", + "sanitized_user_message": "покажи документы по договору 24/15 за 2020", "tool_gate_decision": "run_address_lane", "tool_gate_reason": "address_mode_classifier_detected", "answer_structure_v11": null, @@ -6516,7 +6516,7 @@ "trace_id": "Fe3CVqjlvBoh2J", "prompt_version": "normalizer_v2_0_2", "applied": true, - "effective_message": "Показать документы по договору 15/24 за период 2020 года." + "effective_message": "Показать документы по договору 24/15 за период 2020 года." } }, "error_code": null, @@ -6525,7 +6525,7 @@ { "index": 44, "id": "S044", - "question": "доки по дог. 15/24 за 2020", + "question": "доки по дог. 24/15 за 2020", "session": null, "session_id": "asst-2026-04-02_Address_Slang_Live_Stress_2026-04-02_12-13-28-s044", "status_code": 200, @@ -6600,7 +6600,7 @@ "extracted_filters": { "sort": "period_desc", "limit": 20, - "contract": "15/24", + "contract": "24/15", "period_from": "2020-01-01", "period_to": "2020-12-31" }, @@ -6610,8 +6610,8 @@ "account_scope_mode": "preferred", "account_scope_fallback_applied": true, "anchor_type": "contract", - "anchor_value_raw": "15/24", - "anchor_value_resolved": "15/24", + "anchor_value_raw": "24/15", + "anchor_value_resolved": "24/15", "resolver_confidence": "medium", "ambiguity_count": 0, "match_failure_stage": "materialized_but_not_anchor_matched", @@ -6654,10 +6654,10 @@ "llm_decomposition_attempted": true, "llm_provider_used": "local", "llm_decomposition_trace_id": "hyH61_JdHo-7NE", - "llm_decomposition_effective_message": "Документы по договору 15/24 за 2020 год.", + "llm_decomposition_effective_message": "Документы по договору 24/15 за 2020 год.", "llm_decomposition_reason": "normalized_fragment_applied", "fallback_rule_hit": null, - "sanitized_user_message": "доки по договор 15/24 за 2020", + "sanitized_user_message": "доки по договор 24/15 за 2020", "tool_gate_decision": "run_address_lane", "tool_gate_reason": "address_mode_classifier_detected", "answer_structure_v11": null, @@ -6667,7 +6667,7 @@ "trace_id": "hyH61_JdHo-7NE", "prompt_version": "normalizer_v2_0_2", "applied": true, - "effective_message": "Документы по договору 15/24 за 2020 год." + "effective_message": "Документы по договору 24/15 за 2020 год." } }, "error_code": null, @@ -6676,7 +6676,7 @@ { "index": 45, "id": "S045", - "question": "какие документы по контракту 15/24", + "question": "какие документы по контракту 24/15", "session": null, "session_id": "asst-2026-04-02_Address_Slang_Live_Stress_2026-04-02_12-13-28-s045", "status_code": 200, @@ -6753,7 +6753,7 @@ "extracted_filters": { "sort": "period_desc", "limit": 20, - "contract": "15/24" + "contract": "24/15" }, "missing_required_filters": [], "selected_recipe": "address_documents_by_contract_v1", @@ -6761,8 +6761,8 @@ "account_scope_mode": "preferred", "account_scope_fallback_applied": false, "anchor_type": "contract", - "anchor_value_raw": "15/24", - "anchor_value_resolved": "15/24", + "anchor_value_raw": "24/15", + "anchor_value_resolved": "24/15", "resolver_confidence": "medium", "ambiguity_count": 0, "match_failure_stage": "none", @@ -6805,10 +6805,10 @@ "llm_decomposition_attempted": true, "llm_provider_used": "local", "llm_decomposition_trace_id": "dehTvwf0BU7dft", - "llm_decomposition_effective_message": "Получить список документов, связанных с контрактом 15/24.", + "llm_decomposition_effective_message": "Получить список документов, связанных с контрактом 24/15.", "llm_decomposition_reason": "normalized_fragment_applied", "fallback_rule_hit": null, - "sanitized_user_message": "какие документы по контракту 15/24", + "sanitized_user_message": "какие документы по контракту 24/15", "tool_gate_decision": "run_address_lane", "tool_gate_reason": "address_mode_classifier_detected", "answer_structure_v11": null, @@ -6818,7 +6818,7 @@ "trace_id": "dehTvwf0BU7dft", "prompt_version": "normalizer_v2_0_2", "applied": true, - "effective_message": "Получить список документов, связанных с контрактом 15/24." + "effective_message": "Получить список документов, связанных с контрактом 24/15." } }, "error_code": null, @@ -6827,7 +6827,7 @@ { "index": 46, "id": "S046", - "question": "docs by contract 15/24 year 2020", + "question": "docs by contract 24/15 year 2020", "session": null, "session_id": "asst-2026-04-02_Address_Slang_Live_Stress_2026-04-02_12-13-28-s046", "status_code": 200, @@ -6902,7 +6902,7 @@ "extracted_filters": { "sort": "period_desc", "limit": 20, - "contract": "15/24 year 2020", + "contract": "24/15 year 2020", "period_from": "2020-01-01", "period_to": "2020-12-31" }, @@ -6912,8 +6912,8 @@ "account_scope_mode": "preferred", "account_scope_fallback_applied": true, "anchor_type": "contract", - "anchor_value_raw": "15/24 year 2020", - "anchor_value_resolved": "15/24 year 2020", + "anchor_value_raw": "24/15 year 2020", + "anchor_value_resolved": "24/15 year 2020", "resolver_confidence": "medium", "ambiguity_count": 0, "match_failure_stage": "materialized_but_not_anchor_matched", @@ -6956,7 +6956,7 @@ "llm_decomposition_attempted": true, "llm_provider_used": "local", "llm_decomposition_trace_id": "BGJ1luYFn8UJmS", - "llm_decomposition_effective_message": "docs by contract 15/24 year 2020", + "llm_decomposition_effective_message": "docs by contract 24/15 year 2020", "llm_decomposition_reason": "normalized_fragment_same", "fallback_rule_hit": null, "sanitized_user_message": "документы by contract 15/2024 год 2020", @@ -6969,7 +6969,7 @@ "trace_id": "BGJ1luYFn8UJmS", "prompt_version": "normalizer_v2_0_2", "applied": false, - "effective_message": "docs by contract 15/24 year 2020" + "effective_message": "docs by contract 24/15 year 2020" } }, "error_code": null, @@ -6978,7 +6978,7 @@ { "index": 47, "id": "S047", - "question": "бля, покажи по договору 15/24 доки", + "question": "бля, покажи по договору 24/15 доки", "session": null, "session_id": "asst-2026-04-02_Address_Slang_Live_Stress_2026-04-02_12-13-28-s047", "status_code": 200, @@ -7055,7 +7055,7 @@ "extracted_filters": { "sort": "period_desc", "limit": 20, - "contract": "15/24" + "contract": "24/15" }, "missing_required_filters": [], "selected_recipe": "address_documents_by_contract_v1", @@ -7063,8 +7063,8 @@ "account_scope_mode": "preferred", "account_scope_fallback_applied": false, "anchor_type": "contract", - "anchor_value_raw": "15/24", - "anchor_value_resolved": "15/24", + "anchor_value_raw": "24/15", + "anchor_value_resolved": "24/15", "resolver_confidence": "medium", "ambiguity_count": 0, "match_failure_stage": "none", @@ -7107,10 +7107,10 @@ "llm_decomposition_attempted": true, "llm_provider_used": "local", "llm_decomposition_trace_id": "jc4pgjXDzodjqU", - "llm_decomposition_effective_message": "покажи документы по договору 15/24", + "llm_decomposition_effective_message": "покажи документы по договору 24/15", "llm_decomposition_reason": "normalized_fragment_applied", "fallback_rule_hit": null, - "sanitized_user_message": "покажи по договору 15/24 доки", + "sanitized_user_message": "покажи по договору 24/15 доки", "tool_gate_decision": "run_address_lane", "tool_gate_reason": "address_mode_classifier_detected", "answer_structure_v11": null, @@ -7120,7 +7120,7 @@ "trace_id": "jc4pgjXDzodjqU", "prompt_version": "normalizer_v2_0_2", "applied": true, - "effective_message": "покажи документы по договору 15/24" + "effective_message": "покажи документы по договору 24/15" } }, "error_code": null, @@ -7129,7 +7129,7 @@ { "index": 48, "id": "S048", - "question": "договор 15/24 документы", + "question": "договор 24/15 документы", "session": null, "session_id": "asst-2026-04-02_Address_Slang_Live_Stress_2026-04-02_12-13-28-s048", "status_code": 200, @@ -7205,7 +7205,7 @@ "extracted_filters": { "sort": "period_desc", "limit": 20, - "contract": "15/24" + "contract": "24/15" }, "missing_required_filters": [], "selected_recipe": "address_documents_by_contract_v1", @@ -7213,8 +7213,8 @@ "account_scope_mode": "preferred", "account_scope_fallback_applied": false, "anchor_type": "contract", - "anchor_value_raw": "15/24", - "anchor_value_resolved": "15/24", + "anchor_value_raw": "24/15", + "anchor_value_resolved": "24/15", "resolver_confidence": "medium", "ambiguity_count": 0, "match_failure_stage": "none", @@ -7257,10 +7257,10 @@ "llm_decomposition_attempted": true, "llm_provider_used": "local", "llm_decomposition_trace_id": "Ni4J3xQAVVPqA3", - "llm_decomposition_effective_message": "документы по договору 15/24", + "llm_decomposition_effective_message": "документы по договору 24/15", "llm_decomposition_reason": "normalized_fragment_applied", "fallback_rule_hit": null, - "sanitized_user_message": "договор 15/24 документы", + "sanitized_user_message": "договор 24/15 документы", "tool_gate_decision": "run_address_lane", "tool_gate_reason": "address_mode_classifier_detected", "answer_structure_v11": null, @@ -7270,7 +7270,7 @@ "trace_id": "Ni4J3xQAVVPqA3", "prompt_version": "normalizer_v2_0_2", "applied": true, - "effective_message": "документы по договору 15/24" + "effective_message": "документы по договору 24/15" } }, "error_code": null, @@ -7279,7 +7279,7 @@ { "index": 49, "id": "S049", - "question": "плс документы договор №15/24", + "question": "плс документы договор №24/15", "session": null, "session_id": "asst-2026-04-02_Address_Slang_Live_Stress_2026-04-02_12-13-28-s049", "status_code": 200, @@ -7354,7 +7354,7 @@ "extracted_filters": { "sort": "period_desc", "limit": 20, - "contract": "номер 15/24" + "contract": "номер 24/15" }, "missing_required_filters": [], "selected_recipe": "address_documents_by_contract_v1", @@ -7362,8 +7362,8 @@ "account_scope_mode": "preferred", "account_scope_fallback_applied": false, "anchor_type": "contract", - "anchor_value_raw": "номер 15/24", - "anchor_value_resolved": "номер 15/24", + "anchor_value_raw": "номер 24/15", + "anchor_value_resolved": "номер 24/15", "resolver_confidence": "medium", "ambiguity_count": 0, "match_failure_stage": "materialized_but_not_anchor_matched", @@ -7406,10 +7406,10 @@ "llm_decomposition_attempted": true, "llm_provider_used": "local", "llm_decomposition_trace_id": "blEeG2Y5m0r2kn", - "llm_decomposition_effective_message": "пожалуйста, предоставьте документы по договору номер 15/24", + "llm_decomposition_effective_message": "пожалуйста, предоставьте документы по договору номер 24/15", "llm_decomposition_reason": "normalized_fragment_applied", "fallback_rule_hit": null, - "sanitized_user_message": "документы договор №15/24", + "sanitized_user_message": "документы договор №24/15", "tool_gate_decision": "run_address_lane", "tool_gate_reason": "address_mode_classifier_detected", "answer_structure_v11": null, @@ -7419,7 +7419,7 @@ "trace_id": "blEeG2Y5m0r2kn", "prompt_version": "normalizer_v2_0_2", "applied": true, - "effective_message": "пожалуйста, предоставьте документы по договору номер 15/24" + "effective_message": "пожалуйста, предоставьте документы по договору номер 24/15" } }, "error_code": null, @@ -7428,7 +7428,7 @@ { "index": 50, "id": "S050", - "question": "покеж документы по 15/24", + "question": "покеж документы по 24/15", "session": null, "session_id": "asst-2026-04-02_Address_Slang_Live_Stress_2026-04-02_12-13-28-s050", "status_code": 200, @@ -7504,7 +7504,7 @@ "extracted_filters": { "sort": "period_desc", "limit": 20, - "contract": "15/24" + "contract": "24/15" }, "missing_required_filters": [], "selected_recipe": "address_documents_by_contract_v1", @@ -7512,8 +7512,8 @@ "account_scope_mode": "preferred", "account_scope_fallback_applied": false, "anchor_type": "contract", - "anchor_value_raw": "15/24", - "anchor_value_resolved": "15/24", + "anchor_value_raw": "24/15", + "anchor_value_resolved": "24/15", "resolver_confidence": "medium", "ambiguity_count": 0, "match_failure_stage": "none", @@ -7556,10 +7556,10 @@ "llm_decomposition_attempted": true, "llm_provider_used": "local", "llm_decomposition_trace_id": "Y_0jNV65dzjkBp", - "llm_decomposition_effective_message": "покеж документы по 15/24", + "llm_decomposition_effective_message": "покеж документы по 24/15", "llm_decomposition_reason": "normalized_fragment_rejected_intent_conflict", "fallback_rule_hit": null, - "sanitized_user_message": "покеж документы по 15/24", + "sanitized_user_message": "покеж документы по 24/15", "tool_gate_decision": "run_address_lane", "tool_gate_reason": "address_mode_classifier_detected", "answer_structure_v11": null, @@ -7569,7 +7569,7 @@ "trace_id": "Y_0jNV65dzjkBp", "prompt_version": "normalizer_v2_0_2", "applied": false, - "effective_message": "покеж документы по 15/24" + "effective_message": "покеж документы по 24/15" } }, "error_code": null, @@ -7578,7 +7578,7 @@ { "index": 51, "id": "S051", - "question": "банковские операции по договору 15/24", + "question": "банковские операции по договору 24/15", "session": null, "session_id": "asst-2026-04-02_Address_Slang_Live_Stress_2026-04-02_12-13-28-s051", "status_code": 200, @@ -7653,7 +7653,7 @@ "extracted_filters": { "sort": "period_desc", "limit": 20, - "contract": "15/24" + "contract": "24/15" }, "missing_required_filters": [], "selected_recipe": "address_bank_operations_by_contract_v1", @@ -7661,8 +7661,8 @@ "account_scope_mode": "preferred", "account_scope_fallback_applied": false, "anchor_type": "contract", - "anchor_value_raw": "15/24", - "anchor_value_resolved": "15/24", + "anchor_value_raw": "24/15", + "anchor_value_resolved": "24/15", "resolver_confidence": "medium", "ambiguity_count": 0, "match_failure_stage": "none", @@ -7705,10 +7705,10 @@ "llm_decomposition_attempted": true, "llm_provider_used": "local", "llm_decomposition_trace_id": "0LUqHubWy2XZoM", - "llm_decomposition_effective_message": "банковские операции по договору 15/24", + "llm_decomposition_effective_message": "банковские операции по договору 24/15", "llm_decomposition_reason": "normalized_fragment_same", "fallback_rule_hit": null, - "sanitized_user_message": "банковские операции по договору 15/24", + "sanitized_user_message": "банковские операции по договору 24/15", "tool_gate_decision": "run_address_lane", "tool_gate_reason": "address_mode_classifier_detected", "answer_structure_v11": null, @@ -7718,7 +7718,7 @@ "trace_id": "0LUqHubWy2XZoM", "prompt_version": "normalizer_v2_0_2", "applied": false, - "effective_message": "банковские операции по договору 15/24" + "effective_message": "банковские операции по договору 24/15" } }, "error_code": null, @@ -7727,7 +7727,7 @@ { "index": 52, "id": "S052", - "question": "платежи по договору 15/24", + "question": "платежи по договору 24/15", "session": null, "session_id": "asst-2026-04-02_Address_Slang_Live_Stress_2026-04-02_12-13-28-s052", "status_code": 200, @@ -7802,7 +7802,7 @@ "extracted_filters": { "sort": "period_desc", "limit": 20, - "contract": "15/24" + "contract": "24/15" }, "missing_required_filters": [], "selected_recipe": "address_bank_operations_by_contract_v1", @@ -7810,8 +7810,8 @@ "account_scope_mode": "preferred", "account_scope_fallback_applied": false, "anchor_type": "contract", - "anchor_value_raw": "15/24", - "anchor_value_resolved": "15/24", + "anchor_value_raw": "24/15", + "anchor_value_resolved": "24/15", "resolver_confidence": "medium", "ambiguity_count": 0, "match_failure_stage": "none", @@ -7854,10 +7854,10 @@ "llm_decomposition_attempted": true, "llm_provider_used": "local", "llm_decomposition_trace_id": "Hc-g6nONuUEiaI", - "llm_decomposition_effective_message": "платежи по договору 15/24", + "llm_decomposition_effective_message": "платежи по договору 24/15", "llm_decomposition_reason": "normalized_fragment_same", "fallback_rule_hit": null, - "sanitized_user_message": "платежи по договору 15/24", + "sanitized_user_message": "платежи по договору 24/15", "tool_gate_decision": "run_address_lane", "tool_gate_reason": "address_mode_classifier_detected", "answer_structure_v11": null, @@ -7867,7 +7867,7 @@ "trace_id": "Hc-g6nONuUEiaI", "prompt_version": "normalizer_v2_0_2", "applied": false, - "effective_message": "платежи по договору 15/24" + "effective_message": "платежи по договору 24/15" } }, "error_code": null, @@ -7876,7 +7876,7 @@ { "index": 53, "id": "S053", - "question": "выписка по договору 15/24", + "question": "выписка по договору 24/15", "session": null, "session_id": "asst-2026-04-02_Address_Slang_Live_Stress_2026-04-02_12-13-28-s053", "status_code": 200, @@ -7952,7 +7952,7 @@ "extracted_filters": { "sort": "period_desc", "limit": 20, - "contract": "15/24" + "contract": "24/15" }, "missing_required_filters": [], "selected_recipe": "address_bank_operations_by_contract_v1", @@ -7960,8 +7960,8 @@ "account_scope_mode": "preferred", "account_scope_fallback_applied": false, "anchor_type": "contract", - "anchor_value_raw": "15/24", - "anchor_value_resolved": "15/24", + "anchor_value_raw": "24/15", + "anchor_value_resolved": "24/15", "resolver_confidence": "medium", "ambiguity_count": 0, "match_failure_stage": "none", @@ -7993,10 +7993,10 @@ "llm_decomposition_attempted": true, "llm_provider_used": "local", "llm_decomposition_trace_id": "Z-Swe4ZgmjjnxC", - "llm_decomposition_effective_message": "statement by contract 15/24", + "llm_decomposition_effective_message": "statement by contract 24/15", "llm_decomposition_reason": "normalized_fragment_applied", "fallback_rule_hit": null, - "sanitized_user_message": "выписка по договору 15/24", + "sanitized_user_message": "выписка по договору 24/15", "tool_gate_decision": "run_address_lane", "tool_gate_reason": "address_mode_classifier_detected", "answer_structure_v11": null, @@ -8006,7 +8006,7 @@ "trace_id": "Z-Swe4ZgmjjnxC", "prompt_version": "normalizer_v2_0_2", "applied": true, - "effective_message": "statement by contract 15/24" + "effective_message": "statement by contract 24/15" } }, "error_code": null, @@ -8015,7 +8015,7 @@ { "index": 54, "id": "S054", - "question": "bank ops by contract 15/24", + "question": "bank ops by contract 24/15", "session": null, "session_id": "asst-2026-04-02_Address_Slang_Live_Stress_2026-04-02_12-13-28-s054", "status_code": 200, @@ -8090,7 +8090,7 @@ "extracted_filters": { "sort": "period_desc", "limit": 20, - "contract": "15/24 в банковском учете" + "contract": "24/15 в банковском учете" }, "missing_required_filters": [], "selected_recipe": "address_bank_operations_by_contract_v1", @@ -8098,8 +8098,8 @@ "account_scope_mode": "preferred", "account_scope_fallback_applied": false, "anchor_type": "contract", - "anchor_value_raw": "15/24 в банковском учете", - "anchor_value_resolved": "15/24 в банковском учете", + "anchor_value_raw": "24/15 в банковском учете", + "anchor_value_resolved": "24/15 в банковском учете", "resolver_confidence": "medium", "ambiguity_count": 0, "match_failure_stage": "materialized_but_not_anchor_matched", @@ -8142,10 +8142,10 @@ "llm_decomposition_attempted": true, "llm_provider_used": "local", "llm_decomposition_trace_id": "Vl8EDhT4f6Wzj7", - "llm_decomposition_effective_message": "операции по договору 15/24 в банковском учете", + "llm_decomposition_effective_message": "операции по договору 24/15 в банковском учете", "llm_decomposition_reason": "normalized_fragment_applied", "fallback_rule_hit": null, - "sanitized_user_message": "bank ops by contract 15/24", + "sanitized_user_message": "bank ops by contract 24/15", "tool_gate_decision": "run_address_lane", "tool_gate_reason": "address_mode_classifier_detected", "answer_structure_v11": null, @@ -8155,7 +8155,7 @@ "trace_id": "Vl8EDhT4f6Wzj7", "prompt_version": "normalizer_v2_0_2", "applied": true, - "effective_message": "операции по договору 15/24 в банковском учете" + "effective_message": "операции по договору 24/15 в банковском учете" } }, "error_code": null, @@ -8164,7 +8164,7 @@ { "index": 55, "id": "S055", - "question": "ёпт, покажи банк операции по дог 15/24", + "question": "ёпт, покажи банк операции по дог 24/15", "session": null, "session_id": "asst-2026-04-02_Address_Slang_Live_Stress_2026-04-02_12-13-28-s055", "status_code": 200, @@ -8240,7 +8240,7 @@ "extracted_filters": { "sort": "period_desc", "limit": 20, - "contract": "15/24" + "contract": "24/15" }, "missing_required_filters": [], "selected_recipe": "address_bank_operations_by_contract_v1", @@ -8248,8 +8248,8 @@ "account_scope_mode": "preferred", "account_scope_fallback_applied": false, "anchor_type": "contract", - "anchor_value_raw": "15/24", - "anchor_value_resolved": "15/24", + "anchor_value_raw": "24/15", + "anchor_value_resolved": "24/15", "resolver_confidence": "medium", "ambiguity_count": 0, "match_failure_stage": "none", @@ -8292,10 +8292,10 @@ "llm_decomposition_attempted": true, "llm_provider_used": "local", "llm_decomposition_trace_id": "fW5m3CS89tUMsn", - "llm_decomposition_effective_message": "покажи банковские операции по договору 15/24", + "llm_decomposition_effective_message": "покажи банковские операции по договору 24/15", "llm_decomposition_reason": "normalized_fragment_applied", "fallback_rule_hit": null, - "sanitized_user_message": "покажи банк операции по договор 15/24", + "sanitized_user_message": "покажи банк операции по договор 24/15", "tool_gate_decision": "run_address_lane", "tool_gate_reason": "address_mode_classifier_detected", "answer_structure_v11": null, @@ -8305,7 +8305,7 @@ "trace_id": "fW5m3CS89tUMsn", "prompt_version": "normalizer_v2_0_2", "applied": true, - "effective_message": "покажи банковские операции по договору 15/24" + "effective_message": "покажи банковские операции по договору 24/15" } }, "error_code": null, @@ -8314,7 +8314,7 @@ { "index": 56, "id": "S056", - "question": "по контракту 15/24 платежки", + "question": "по контракту 24/15 платежки", "session": null, "session_id": "asst-2026-04-02_Address_Slang_Live_Stress_2026-04-02_12-13-28-s056", "status_code": 200, @@ -8390,7 +8390,7 @@ "extracted_filters": { "sort": "period_desc", "limit": 20, - "contract": "15/24" + "contract": "24/15" }, "missing_required_filters": [], "selected_recipe": "address_bank_operations_by_contract_v1", @@ -8398,8 +8398,8 @@ "account_scope_mode": "preferred", "account_scope_fallback_applied": false, "anchor_type": "contract", - "anchor_value_raw": "15/24", - "anchor_value_resolved": "15/24", + "anchor_value_raw": "24/15", + "anchor_value_resolved": "24/15", "resolver_confidence": "medium", "ambiguity_count": 0, "match_failure_stage": "none", @@ -8442,10 +8442,10 @@ "llm_decomposition_attempted": true, "llm_provider_used": "local", "llm_decomposition_trace_id": "ly1pXvfHS7eD95", - "llm_decomposition_effective_message": "показать платежи по контракту 15/24", + "llm_decomposition_effective_message": "показать платежи по контракту 24/15", "llm_decomposition_reason": "normalized_fragment_applied", "fallback_rule_hit": null, - "sanitized_user_message": "по контракту 15/24 платежки", + "sanitized_user_message": "по контракту 24/15 платежки", "tool_gate_decision": "run_address_lane", "tool_gate_reason": "address_mode_classifier_detected", "answer_structure_v11": null, @@ -8455,7 +8455,7 @@ "trace_id": "ly1pXvfHS7eD95", "prompt_version": "normalizer_v2_0_2", "applied": true, - "effective_message": "показать платежи по контракту 15/24" + "effective_message": "показать платежи по контракту 24/15" } }, "error_code": null, @@ -13253,7 +13253,7 @@ { "index": 89, "id": "X029", - "question": "доки по договору 15/24 за 2020", + "question": "доки по договору 24/15 за 2020", "session": null, "session_id": "asst-2026-04-02_Address_Slang_Live_Stress_2026-04-02_12-13-28-x029", "status_code": 200, @@ -13328,7 +13328,7 @@ "extracted_filters": { "sort": "period_desc", "limit": 20, - "contract": "15/24", + "contract": "24/15", "period_from": "2020-01-01", "period_to": "2020-12-31" }, @@ -13338,8 +13338,8 @@ "account_scope_mode": "preferred", "account_scope_fallback_applied": true, "anchor_type": "contract", - "anchor_value_raw": "15/24", - "anchor_value_resolved": "15/24", + "anchor_value_raw": "24/15", + "anchor_value_resolved": "24/15", "resolver_confidence": "medium", "ambiguity_count": 0, "match_failure_stage": "materialized_but_not_anchor_matched", @@ -13382,10 +13382,10 @@ "llm_decomposition_attempted": true, "llm_provider_used": "local", "llm_decomposition_trace_id": "drEOCWqCFV9i6p", - "llm_decomposition_effective_message": "Документы по договору 15/24 за 2020 год.", + "llm_decomposition_effective_message": "Документы по договору 24/15 за 2020 год.", "llm_decomposition_reason": "normalized_fragment_applied", "fallback_rule_hit": null, - "sanitized_user_message": "доки по договору 15/24 за 2020", + "sanitized_user_message": "доки по договору 24/15 за 2020", "tool_gate_decision": "run_address_lane", "tool_gate_reason": "address_mode_classifier_detected", "answer_structure_v11": null, @@ -13395,7 +13395,7 @@ "trace_id": "drEOCWqCFV9i6p", "prompt_version": "normalizer_v2_0_2", "applied": true, - "effective_message": "Документы по договору 15/24 за 2020 год." + "effective_message": "Документы по договору 24/15 за 2020 год." } }, "error_code": null, @@ -13404,7 +13404,7 @@ { "index": 90, "id": "X030", - "question": "покажи документы контракт 15/24", + "question": "покажи документы контракт 24/15", "session": null, "session_id": "asst-2026-04-02_Address_Slang_Live_Stress_2026-04-02_12-13-28-x030", "status_code": 200, @@ -13481,7 +13481,7 @@ "extracted_filters": { "sort": "period_desc", "limit": 20, - "contract": "15/24" + "contract": "24/15" }, "missing_required_filters": [], "selected_recipe": "address_documents_by_contract_v1", @@ -13489,8 +13489,8 @@ "account_scope_mode": "preferred", "account_scope_fallback_applied": false, "anchor_type": "contract", - "anchor_value_raw": "15/24", - "anchor_value_resolved": "15/24", + "anchor_value_raw": "24/15", + "anchor_value_resolved": "24/15", "resolver_confidence": "medium", "ambiguity_count": 0, "match_failure_stage": "none", @@ -13533,10 +13533,10 @@ "llm_decomposition_attempted": true, "llm_provider_used": "local", "llm_decomposition_trace_id": "0j8ycrCD02M0_G", - "llm_decomposition_effective_message": "Показать документы по контракту 15/24.", + "llm_decomposition_effective_message": "Показать документы по контракту 24/15.", "llm_decomposition_reason": "normalized_fragment_applied", "fallback_rule_hit": null, - "sanitized_user_message": "покажи документы контракт 15/24", + "sanitized_user_message": "покажи документы контракт 24/15", "tool_gate_decision": "run_address_lane", "tool_gate_reason": "address_mode_classifier_detected", "answer_structure_v11": null, @@ -13546,7 +13546,7 @@ "trace_id": "0j8ycrCD02M0_G", "prompt_version": "normalizer_v2_0_2", "applied": true, - "effective_message": "Показать документы по контракту 15/24." + "effective_message": "Показать документы по контракту 24/15." } }, "error_code": null, @@ -13555,7 +13555,7 @@ { "index": 91, "id": "X031", - "question": "docs by contract 15/24 2020", + "question": "docs by contract 24/15 2020", "session": null, "session_id": "asst-2026-04-02_Address_Slang_Live_Stress_2026-04-02_12-13-28-x031", "status_code": 200, @@ -13630,7 +13630,7 @@ "extracted_filters": { "sort": "period_desc", "limit": 20, - "contract": "15/24 2020", + "contract": "24/15 2020", "period_from": "2020-01-01", "period_to": "2020-12-31" }, @@ -13640,8 +13640,8 @@ "account_scope_mode": "preferred", "account_scope_fallback_applied": true, "anchor_type": "contract", - "anchor_value_raw": "15/24 2020", - "anchor_value_resolved": "15/24 2020", + "anchor_value_raw": "24/15 2020", + "anchor_value_resolved": "24/15 2020", "resolver_confidence": "medium", "ambiguity_count": 0, "match_failure_stage": "materialized_but_not_anchor_matched", @@ -13684,10 +13684,10 @@ "llm_decomposition_attempted": true, "llm_provider_used": "local", "llm_decomposition_trace_id": "aRf3HQLbd-9c3H", - "llm_decomposition_effective_message": "docs by contract 15/24 2020", + "llm_decomposition_effective_message": "docs by contract 24/15 2020", "llm_decomposition_reason": "normalized_fragment_same", "fallback_rule_hit": null, - "sanitized_user_message": "документы by contract 15/24 2020", + "sanitized_user_message": "документы by contract 24/15 2020", "tool_gate_decision": "run_address_lane", "tool_gate_reason": "address_mode_classifier_detected", "answer_structure_v11": null, @@ -13697,7 +13697,7 @@ "trace_id": "aRf3HQLbd-9c3H", "prompt_version": "normalizer_v2_0_2", "applied": false, - "effective_message": "docs by contract 15/24 2020" + "effective_message": "docs by contract 24/15 2020" } }, "error_code": null, @@ -13706,7 +13706,7 @@ { "index": 92, "id": "X032", - "question": "по дог 15/24 какие документы", + "question": "по дог 24/15 какие документы", "session": null, "session_id": "asst-2026-04-02_Address_Slang_Live_Stress_2026-04-02_12-13-28-x032", "status_code": 200, @@ -13782,7 +13782,7 @@ "extracted_filters": { "sort": "period_desc", "limit": 20, - "contract": "15/24" + "contract": "24/15" }, "missing_required_filters": [], "selected_recipe": "address_documents_by_contract_v1", @@ -13790,8 +13790,8 @@ "account_scope_mode": "preferred", "account_scope_fallback_applied": false, "anchor_type": "contract", - "anchor_value_raw": "15/24", - "anchor_value_resolved": "15/24", + "anchor_value_raw": "24/15", + "anchor_value_resolved": "24/15", "resolver_confidence": "medium", "ambiguity_count": 0, "match_failure_stage": "none", @@ -13834,10 +13834,10 @@ "llm_decomposition_attempted": true, "llm_provider_used": "local", "llm_decomposition_trace_id": "uNlGsqtpCuAV4M", - "llm_decomposition_effective_message": "Документы по договору 15/24", + "llm_decomposition_effective_message": "Документы по договору 24/15", "llm_decomposition_reason": "normalized_fragment_applied", "fallback_rule_hit": null, - "sanitized_user_message": "по договор 15/24 какие документы", + "sanitized_user_message": "по договор 24/15 какие документы", "tool_gate_decision": "run_address_lane", "tool_gate_reason": "address_mode_classifier_detected", "answer_structure_v11": null, @@ -13847,7 +13847,7 @@ "trace_id": "uNlGsqtpCuAV4M", "prompt_version": "normalizer_v2_0_2", "applied": true, - "effective_message": "Документы по договору 15/24" + "effective_message": "Документы по договору 24/15" } }, "error_code": null, @@ -13856,7 +13856,7 @@ { "index": 93, "id": "X033", - "question": "договор 15/24 выведи доки", + "question": "договор 24/15 выведи доки", "session": null, "session_id": "asst-2026-04-02_Address_Slang_Live_Stress_2026-04-02_12-13-28-x033", "status_code": 200, @@ -13932,7 +13932,7 @@ "extracted_filters": { "sort": "period_desc", "limit": 20, - "contract": "15/24 выведите связанные документы" + "contract": "24/15 выведите связанные документы" }, "missing_required_filters": [], "selected_recipe": "address_documents_by_contract_v1", @@ -13940,8 +13940,8 @@ "account_scope_mode": "preferred", "account_scope_fallback_applied": false, "anchor_type": "contract", - "anchor_value_raw": "15/24 выведите связанные документы", - "anchor_value_resolved": "15/24 выведите связанные документы", + "anchor_value_raw": "24/15 выведите связанные документы", + "anchor_value_resolved": "24/15 выведите связанные документы", "resolver_confidence": "medium", "ambiguity_count": 0, "match_failure_stage": "materialized_but_not_anchor_matched", @@ -13984,10 +13984,10 @@ "llm_decomposition_attempted": true, "llm_provider_used": "local", "llm_decomposition_trace_id": "vc6NfAa4JPTYC6", - "llm_decomposition_effective_message": "Для договора 15/24 выведите связанные документы.", + "llm_decomposition_effective_message": "Для договора 24/15 выведите связанные документы.", "llm_decomposition_reason": "normalized_fragment_applied", "fallback_rule_hit": null, - "sanitized_user_message": "договор 15/24 выведи доки", + "sanitized_user_message": "договор 24/15 выведи доки", "tool_gate_decision": "run_address_lane", "tool_gate_reason": "address_mode_classifier_detected", "answer_structure_v11": null, @@ -13997,7 +13997,7 @@ "trace_id": "vc6NfAa4JPTYC6", "prompt_version": "normalizer_v2_0_2", "applied": true, - "effective_message": "Для договора 15/24 выведите связанные документы." + "effective_message": "Для договора 24/15 выведите связанные документы." } }, "error_code": null, @@ -14006,7 +14006,7 @@ { "index": 94, "id": "X034", - "question": "нах покажи документы по 15/24", + "question": "нах покажи документы по 24/15", "session": null, "session_id": "asst-2026-04-02_Address_Slang_Live_Stress_2026-04-02_12-13-28-x034", "status_code": 200, @@ -14083,7 +14083,7 @@ "extracted_filters": { "sort": "period_desc", "limit": 20, - "contract": "15/24" + "contract": "24/15" }, "missing_required_filters": [], "selected_recipe": "address_documents_by_contract_v1", @@ -14091,8 +14091,8 @@ "account_scope_mode": "preferred", "account_scope_fallback_applied": false, "anchor_type": "contract", - "anchor_value_raw": "15/24", - "anchor_value_resolved": "15/24", + "anchor_value_raw": "24/15", + "anchor_value_resolved": "24/15", "resolver_confidence": "medium", "ambiguity_count": 0, "match_failure_stage": "none", @@ -14135,10 +14135,10 @@ "llm_decomposition_attempted": true, "llm_provider_used": "local", "llm_decomposition_trace_id": "nsIFjBVGg2KkVU", - "llm_decomposition_effective_message": "нах покажи документы по 15/24", + "llm_decomposition_effective_message": "нах покажи документы по 24/15", "llm_decomposition_reason": "normalized_fragment_rejected_intent_conflict", "fallback_rule_hit": null, - "sanitized_user_message": "покажи документы по 15/24", + "sanitized_user_message": "покажи документы по 24/15", "tool_gate_decision": "run_address_lane", "tool_gate_reason": "address_mode_classifier_detected", "answer_structure_v11": null, @@ -14148,7 +14148,7 @@ "trace_id": "nsIFjBVGg2KkVU", "prompt_version": "normalizer_v2_0_2", "applied": false, - "effective_message": "нах покажи документы по 15/24" + "effective_message": "нах покажи документы по 24/15" } }, "error_code": null, @@ -14157,7 +14157,7 @@ { "index": 95, "id": "X035", - "question": "банк операции по договору 15/24", + "question": "банк операции по договору 24/15", "session": null, "session_id": "asst-2026-04-02_Address_Slang_Live_Stress_2026-04-02_12-13-28-x035", "status_code": 200, @@ -14232,7 +14232,7 @@ "extracted_filters": { "sort": "period_desc", "limit": 20, - "contract": "15/24" + "contract": "24/15" }, "missing_required_filters": [], "selected_recipe": "address_bank_operations_by_contract_v1", @@ -14240,8 +14240,8 @@ "account_scope_mode": "preferred", "account_scope_fallback_applied": false, "anchor_type": "contract", - "anchor_value_raw": "15/24", - "anchor_value_resolved": "15/24", + "anchor_value_raw": "24/15", + "anchor_value_resolved": "24/15", "resolver_confidence": "medium", "ambiguity_count": 0, "match_failure_stage": "none", @@ -14284,10 +14284,10 @@ "llm_decomposition_attempted": true, "llm_provider_used": "local", "llm_decomposition_trace_id": "mtfMO5esh674Zt", - "llm_decomposition_effective_message": "операции банка по договору 15/24", + "llm_decomposition_effective_message": "операции банка по договору 24/15", "llm_decomposition_reason": "normalized_fragment_applied", "fallback_rule_hit": null, - "sanitized_user_message": "банк операции по договору 15/24", + "sanitized_user_message": "банк операции по договору 24/15", "tool_gate_decision": "run_address_lane", "tool_gate_reason": "address_mode_classifier_detected", "answer_structure_v11": null, @@ -14297,7 +14297,7 @@ "trace_id": "mtfMO5esh674Zt", "prompt_version": "normalizer_v2_0_2", "applied": true, - "effective_message": "операции банка по договору 15/24" + "effective_message": "операции банка по договору 24/15" } }, "error_code": null, @@ -14306,7 +14306,7 @@ { "index": 96, "id": "X036", - "question": "платежки по дог 15/24", + "question": "платежки по дог 24/15", "session": null, "session_id": "asst-2026-04-02_Address_Slang_Live_Stress_2026-04-02_12-13-28-x036", "status_code": 200, @@ -14381,7 +14381,7 @@ "extracted_filters": { "sort": "period_desc", "limit": 20, - "contract": "15/24" + "contract": "24/15" }, "missing_required_filters": [], "selected_recipe": "address_bank_operations_by_contract_v1", @@ -14389,8 +14389,8 @@ "account_scope_mode": "preferred", "account_scope_fallback_applied": false, "anchor_type": "contract", - "anchor_value_raw": "15/24", - "anchor_value_resolved": "15/24", + "anchor_value_raw": "24/15", + "anchor_value_resolved": "24/15", "resolver_confidence": "medium", "ambiguity_count": 0, "match_failure_stage": "none", @@ -14433,10 +14433,10 @@ "llm_decomposition_attempted": true, "llm_provider_used": "local", "llm_decomposition_trace_id": "97SThIRlVDSVC2", - "llm_decomposition_effective_message": "платежи по договору 15/24", + "llm_decomposition_effective_message": "платежи по договору 24/15", "llm_decomposition_reason": "normalized_fragment_applied", "fallback_rule_hit": null, - "sanitized_user_message": "платежки по договор 15/24", + "sanitized_user_message": "платежки по договор 24/15", "tool_gate_decision": "run_address_lane", "tool_gate_reason": "address_mode_classifier_detected", "answer_structure_v11": null, @@ -14446,7 +14446,7 @@ "trace_id": "97SThIRlVDSVC2", "prompt_version": "normalizer_v2_0_2", "applied": true, - "effective_message": "платежи по договору 15/24" + "effective_message": "платежи по договору 24/15" } }, "error_code": null, @@ -14455,7 +14455,7 @@ { "index": 97, "id": "X037", - "question": "выписка по контракту 15/24", + "question": "выписка по контракту 24/15", "session": null, "session_id": "asst-2026-04-02_Address_Slang_Live_Stress_2026-04-02_12-13-28-x037", "status_code": 200, @@ -14530,7 +14530,7 @@ "extracted_filters": { "sort": "period_desc", "limit": 20, - "contract": "15/24" + "contract": "24/15" }, "missing_required_filters": [], "selected_recipe": "address_bank_operations_by_contract_v1", @@ -14538,8 +14538,8 @@ "account_scope_mode": "preferred", "account_scope_fallback_applied": false, "anchor_type": "contract", - "anchor_value_raw": "15/24", - "anchor_value_resolved": "15/24", + "anchor_value_raw": "24/15", + "anchor_value_resolved": "24/15", "resolver_confidence": "medium", "ambiguity_count": 0, "match_failure_stage": "none", @@ -14582,10 +14582,10 @@ "llm_decomposition_attempted": true, "llm_provider_used": "local", "llm_decomposition_trace_id": "o9QDCB0hYQoPl8", - "llm_decomposition_effective_message": "выписка по контракту 15/24", + "llm_decomposition_effective_message": "выписка по контракту 24/15", "llm_decomposition_reason": "normalized_fragment_same", "fallback_rule_hit": null, - "sanitized_user_message": "выписка по контракту 15/24", + "sanitized_user_message": "выписка по контракту 24/15", "tool_gate_decision": "run_address_lane", "tool_gate_reason": "address_mode_classifier_detected", "answer_structure_v11": null, @@ -14595,7 +14595,7 @@ "trace_id": "o9QDCB0hYQoPl8", "prompt_version": "normalizer_v2_0_2", "applied": false, - "effective_message": "выписка по контракту 15/24" + "effective_message": "выписка по контракту 24/15" } }, "error_code": null, @@ -14604,7 +14604,7 @@ { "index": 98, "id": "X038", - "question": "bank ops by contract 15/24", + "question": "bank ops by contract 24/15", "session": null, "session_id": "asst-2026-04-02_Address_Slang_Live_Stress_2026-04-02_12-13-28-x038", "status_code": 200, @@ -14679,7 +14679,7 @@ "extracted_filters": { "sort": "period_desc", "limit": 20, - "contract": "15/24 в банковском учете" + "contract": "24/15 в банковском учете" }, "missing_required_filters": [], "selected_recipe": "address_bank_operations_by_contract_v1", @@ -14687,8 +14687,8 @@ "account_scope_mode": "preferred", "account_scope_fallback_applied": false, "anchor_type": "contract", - "anchor_value_raw": "15/24 в банковском учете", - "anchor_value_resolved": "15/24 в банковском учете", + "anchor_value_raw": "24/15 в банковском учете", + "anchor_value_resolved": "24/15 в банковском учете", "resolver_confidence": "medium", "ambiguity_count": 0, "match_failure_stage": "materialized_but_not_anchor_matched", @@ -14731,10 +14731,10 @@ "llm_decomposition_attempted": true, "llm_provider_used": "local", "llm_decomposition_trace_id": "drkqVojckPHU-O", - "llm_decomposition_effective_message": "операции по договору 15/24 в банковском учете", + "llm_decomposition_effective_message": "операции по договору 24/15 в банковском учете", "llm_decomposition_reason": "normalized_fragment_applied", "fallback_rule_hit": null, - "sanitized_user_message": "bank ops by contract 15/24", + "sanitized_user_message": "bank ops by contract 24/15", "tool_gate_decision": "run_address_lane", "tool_gate_reason": "address_mode_classifier_detected", "answer_structure_v11": null, @@ -14744,7 +14744,7 @@ "trace_id": "drkqVojckPHU-O", "prompt_version": "normalizer_v2_0_2", "applied": true, - "effective_message": "операции по договору 15/24 в банковском учете" + "effective_message": "операции по договору 24/15 в банковском учете" } }, "error_code": null, @@ -14753,7 +14753,7 @@ { "index": 99, "id": "X039", - "question": "покажи банк опер по дог 15/24 пж", + "question": "покажи банк опер по дог 24/15 пж", "session": null, "session_id": "asst-2026-04-02_Address_Slang_Live_Stress_2026-04-02_12-13-28-x039", "status_code": 200, @@ -14830,7 +14830,7 @@ "extracted_filters": { "sort": "period_desc", "limit": 20, - "contract": "15/24" + "contract": "24/15" }, "missing_required_filters": [], "selected_recipe": "address_bank_operations_by_contract_v1", @@ -14838,8 +14838,8 @@ "account_scope_mode": "preferred", "account_scope_fallback_applied": false, "anchor_type": "contract", - "anchor_value_raw": "15/24", - "anchor_value_resolved": "15/24", + "anchor_value_raw": "24/15", + "anchor_value_resolved": "24/15", "resolver_confidence": "medium", "ambiguity_count": 0, "match_failure_stage": "none", @@ -14871,10 +14871,10 @@ "llm_decomposition_attempted": true, "llm_provider_used": "local", "llm_decomposition_trace_id": "HTObpDOoFpJ5EI", - "llm_decomposition_effective_message": "Показать банковские операции по договору 15/24.", + "llm_decomposition_effective_message": "Показать банковские операции по договору 24/15.", "llm_decomposition_reason": "normalized_fragment_applied", "fallback_rule_hit": null, - "sanitized_user_message": "покажи банк операции по договор 15/24", + "sanitized_user_message": "покажи банк операции по договор 24/15", "tool_gate_decision": "run_address_lane", "tool_gate_reason": "address_mode_classifier_detected", "answer_structure_v11": null, @@ -14884,7 +14884,7 @@ "trace_id": "HTObpDOoFpJ5EI", "prompt_version": "normalizer_v2_0_2", "applied": true, - "effective_message": "Показать банковские операции по договору 15/24." + "effective_message": "Показать банковские операции по договору 24/15." } }, "error_code": null, @@ -14893,7 +14893,7 @@ { "index": 100, "id": "X040", - "question": "епт транзакции договор 15/24", + "question": "епт транзакции договор 24/15", "session": null, "session_id": "asst-2026-04-02_Address_Slang_Live_Stress_2026-04-02_12-13-28-x040", "status_code": 200, @@ -14968,7 +14968,7 @@ "extracted_filters": { "sort": "period_desc", "limit": 20, - "contract": "15/24" + "contract": "24/15" }, "missing_required_filters": [], "selected_recipe": "address_bank_operations_by_contract_v1", @@ -14976,8 +14976,8 @@ "account_scope_mode": "preferred", "account_scope_fallback_applied": false, "anchor_type": "contract", - "anchor_value_raw": "15/24", - "anchor_value_resolved": "15/24", + "anchor_value_raw": "24/15", + "anchor_value_resolved": "24/15", "resolver_confidence": "medium", "ambiguity_count": 0, "match_failure_stage": "none", @@ -15020,10 +15020,10 @@ "llm_decomposition_attempted": true, "llm_provider_used": "local", "llm_decomposition_trace_id": "2weQl5XrbFJVH8", - "llm_decomposition_effective_message": "Проверить или разобрать транзакции по договору 15/24.", + "llm_decomposition_effective_message": "Проверить или разобрать транзакции по договору 24/15.", "llm_decomposition_reason": "normalized_fragment_applied", "fallback_rule_hit": null, - "sanitized_user_message": "транзакции договор 15/24", + "sanitized_user_message": "транзакции договор 24/15", "tool_gate_decision": "run_address_lane", "tool_gate_reason": "address_mode_classifier_detected", "answer_structure_v11": null, @@ -15033,7 +15033,7 @@ "trace_id": "2weQl5XrbFJVH8", "prompt_version": "normalizer_v2_0_2", "applied": true, - "effective_message": "Проверить или разобрать транзакции по договору 15/24." + "effective_message": "Проверить или разобрать транзакции по договору 24/15." } }, "error_code": null, diff --git a/docs/ADDRESS/runs/2026-04-02_Address_Slang_Live_Stress_2026-04-02_12-13-28/response_audit.md b/docs/ADDRESS/runs/2026-04-02_Address_Slang_Live_Stress_2026-04-02_12-13-28/response_audit.md index c24cd45..821347b 100644 --- a/docs/ADDRESS/runs/2026-04-02_Address_Slang_Live_Stress_2026-04-02_12-13-28/response_audit.md +++ b/docs/ADDRESS/runs/2026-04-02_Address_Slang_Live_Stress_2026-04-02_12-13-28/response_audit.md @@ -44,20 +44,20 @@ | S040 | False | blocked_recipe_visibility_gap | partial_coverage | documents_forming_balance | recipe_visibility_gap | бля, какие доки формируют остаток 60.01 на 2020-05-31 | Текущий live recipe не дает нужную видимость данных для этого сценария. | | S041 | True | partial_non_blocking | partial_coverage | documents_forming_balance | empty_match | по счету 62.01 раскрой остаток документами на 2020-12-31 | В live-данных по текущему фильтру записи не найдены. | | S042 | True | ok_or_factual | factual | documents_forming_balance | None | из чего остаток по счету 51 на 2020-06-30 | Собран drilldown документов, формирующих остаток по счету на указанную дату. | -| S043 | False | likely_blocked_route | partial_coverage | list_documents_by_contract | empty_match | покажи документы по договору 15/24 за 2020 | В live-данных по текущему фильтру записи не найдены. | -| S044 | False | likely_blocked_route | partial_coverage | list_documents_by_contract | empty_match | доки по дог. 15/24 за 2020 | В live-данных по текущему фильтру записи не найдены. | -| S045 | True | ok_or_factual | factual | list_documents_by_contract | None | какие документы по контракту 15/24 | Документный фильтр в live дал пустой набор; показываю связанные банковские операции по договору. | -| S046 | False | likely_blocked_route | partial_coverage | list_documents_by_contract | empty_match | docs by contract 15/24 year 2020 | В live-данных по текущему фильтру записи не найдены. | -| S047 | True | ok_or_factual | factual | list_documents_by_contract | None | бля, покажи по договору 15/24 доки | Документный фильтр в live дал пустой набор; показываю связанные банковские операции по договору. | -| S048 | True | ok_or_factual | factual | list_documents_by_contract | None | договор 15/24 документы | Документный фильтр в live дал пустой набор; показываю связанные банковские операции по договору. | -| S049 | False | likely_blocked_route | partial_coverage | list_documents_by_contract | empty_match | плс документы договор №15/24 | В live-данных по текущему фильтру записи не найдены. | -| S050 | True | ok_or_factual | factual | list_documents_by_contract | None | покеж документы по 15/24 | Документный фильтр в live дал пустой набор; показываю связанные банковские операции по договору. | -| S051 | True | ok_or_factual | factual | bank_operations_by_contract | None | банковские операции по договору 15/24 | Собран список банковских операций по договору (live address lane). | -| S052 | True | ok_or_factual | factual | bank_operations_by_contract | None | платежи по договору 15/24 | Собран список банковских операций по договору (live address lane). | -| S053 | False | blocked_execution_error | partial_coverage | bank_operations_by_contract | execution_error | выписка по договору 15/24 | Не удалось выполнить адресный live-запрос в V1. | -| S054 | False | likely_blocked_route | partial_coverage | bank_operations_by_contract | empty_match | bank ops by contract 15/24 | В live-данных по текущему фильтру записи не найдены. | -| S055 | True | ok_or_factual | factual | bank_operations_by_contract | None | ёпт, покажи банк операции по дог 15/24 | Собран список банковских операций по договору (live address lane). | -| S056 | True | ok_or_factual | factual | bank_operations_by_contract | None | по контракту 15/24 платежки | Собран список банковских операций по договору (live address lane). | +| S043 | False | likely_blocked_route | partial_coverage | list_documents_by_contract | empty_match | покажи документы по договору 24/15 за 2020 | В live-данных по текущему фильтру записи не найдены. | +| S044 | False | likely_blocked_route | partial_coverage | list_documents_by_contract | empty_match | доки по дог. 24/15 за 2020 | В live-данных по текущему фильтру записи не найдены. | +| S045 | True | ok_or_factual | factual | list_documents_by_contract | None | какие документы по контракту 24/15 | Документный фильтр в live дал пустой набор; показываю связанные банковские операции по договору. | +| S046 | False | likely_blocked_route | partial_coverage | list_documents_by_contract | empty_match | docs by contract 24/15 year 2020 | В live-данных по текущему фильтру записи не найдены. | +| S047 | True | ok_or_factual | factual | list_documents_by_contract | None | бля, покажи по договору 24/15 доки | Документный фильтр в live дал пустой набор; показываю связанные банковские операции по договору. | +| S048 | True | ok_or_factual | factual | list_documents_by_contract | None | договор 24/15 документы | Документный фильтр в live дал пустой набор; показываю связанные банковские операции по договору. | +| S049 | False | likely_blocked_route | partial_coverage | list_documents_by_contract | empty_match | плс документы договор №24/15 | В live-данных по текущему фильтру записи не найдены. | +| S050 | True | ok_or_factual | factual | list_documents_by_contract | None | покеж документы по 24/15 | Документный фильтр в live дал пустой набор; показываю связанные банковские операции по договору. | +| S051 | True | ok_or_factual | factual | bank_operations_by_contract | None | банковские операции по договору 24/15 | Собран список банковских операций по договору (live address lane). | +| S052 | True | ok_or_factual | factual | bank_operations_by_contract | None | платежи по договору 24/15 | Собран список банковских операций по договору (live address lane). | +| S053 | False | blocked_execution_error | partial_coverage | bank_operations_by_contract | execution_error | выписка по договору 24/15 | Не удалось выполнить адресный live-запрос в V1. | +| S054 | False | likely_blocked_route | partial_coverage | bank_operations_by_contract | empty_match | bank ops by contract 24/15 | В live-данных по текущему фильтру записи не найдены. | +| S055 | True | ok_or_factual | factual | bank_operations_by_contract | None | ёпт, покажи банк операции по дог 24/15 | Собран список банковских операций по договору (live address lane). | +| S056 | True | ok_or_factual | factual | bank_operations_by_contract | None | по контракту 24/15 платежки | Собран список банковских операций по договору (live address lane). | | S057 | True | ok_or_factual | factual | account_balance_snapshot | None | покажи сальдо по счету 60 за 2020 | Адресный срез по счету собран (по движениям live MCP). | | S058 | True | ok_or_factual | factual | account_balance_snapshot | None | а теперь только май 2020 | Адресный срез по счету собран (по движениям live MCP). | | S059 | True | ok_or_factual | factual | account_balance_snapshot | None | ок, теперь 2020.05 | Адресный срез по счету собран (по движениям live MCP). | @@ -90,17 +90,17 @@ | X026 | False | blocked_missing_anchor | partial_coverage | documents_forming_balance | missing_anchor | раскидай остаток 62.01 по докам на 2020-12-31 | Для точного адресного поиска не хватает обязательного якоря. | | X027 | True | ok_or_factual | factual | documents_forming_balance | None | по счету 51 раскрой остаток документами на 2020-06-30 | Собран drilldown документов, формирующих остаток по счету на указанную дату. | | X028 | False | blocked_missing_anchor | partial_coverage | documents_forming_balance | missing_anchor | бля из чего состоит остаток по 60.01 на 2020-05-31 | Для точного адресного поиска не хватает обязательного якоря. | -| X029 | False | likely_blocked_route | partial_coverage | list_documents_by_contract | empty_match | доки по договору 15/24 за 2020 | В live-данных по текущему фильтру записи не найдены. | -| X030 | True | ok_or_factual | factual | list_documents_by_contract | None | покажи документы контракт 15/24 | Документный фильтр в live дал пустой набор; показываю связанные банковские операции по договору. | -| X031 | False | likely_blocked_route | partial_coverage | list_documents_by_contract | empty_match | docs by contract 15/24 2020 | В live-данных по текущему фильтру записи не найдены. | -| X032 | True | ok_or_factual | factual | list_documents_by_contract | None | по дог 15/24 какие документы | Документный фильтр в live дал пустой набор; показываю связанные банковские операции по договору. | -| X033 | False | likely_blocked_route | partial_coverage | list_documents_by_contract | empty_match | договор 15/24 выведи доки | В live-данных по текущему фильтру записи не найдены. | -| X034 | True | ok_or_factual | factual | list_documents_by_contract | None | нах покажи документы по 15/24 | Документный фильтр в live дал пустой набор; показываю связанные банковские операции по договору. | -| X035 | True | ok_or_factual | factual | bank_operations_by_contract | None | банк операции по договору 15/24 | Собран список банковских операций по договору (live address lane). | -| X036 | True | ok_or_factual | factual | bank_operations_by_contract | None | платежки по дог 15/24 | Собран список банковских операций по договору (live address lane). | -| X037 | True | ok_or_factual | factual | bank_operations_by_contract | None | выписка по контракту 15/24 | Собран список банковских операций по договору (live address lane). | -| X038 | False | likely_blocked_route | partial_coverage | bank_operations_by_contract | empty_match | bank ops by contract 15/24 | В live-данных по текущему фильтру записи не найдены. | -| X039 | False | blocked_execution_error | partial_coverage | bank_operations_by_contract | execution_error | покажи банк опер по дог 15/24 пж | Не удалось выполнить адресный live-запрос в V1. | -| X040 | True | ok_or_factual | factual | bank_operations_by_contract | None | епт транзакции договор 15/24 | Собран список банковских операций по договору (live address lane). | +| X029 | False | likely_blocked_route | partial_coverage | list_documents_by_contract | empty_match | доки по договору 24/15 за 2020 | В live-данных по текущему фильтру записи не найдены. | +| X030 | True | ok_or_factual | factual | list_documents_by_contract | None | покажи документы контракт 24/15 | Документный фильтр в live дал пустой набор; показываю связанные банковские операции по договору. | +| X031 | False | likely_blocked_route | partial_coverage | list_documents_by_contract | empty_match | docs by contract 24/15 2020 | В live-данных по текущему фильтру записи не найдены. | +| X032 | True | ok_or_factual | factual | list_documents_by_contract | None | по дог 24/15 какие документы | Документный фильтр в live дал пустой набор; показываю связанные банковские операции по договору. | +| X033 | False | likely_blocked_route | partial_coverage | list_documents_by_contract | empty_match | договор 24/15 выведи доки | В live-данных по текущему фильтру записи не найдены. | +| X034 | True | ok_or_factual | factual | list_documents_by_contract | None | нах покажи документы по 24/15 | Документный фильтр в live дал пустой набор; показываю связанные банковские операции по договору. | +| X035 | True | ok_or_factual | factual | bank_operations_by_contract | None | банк операции по договору 24/15 | Собран список банковских операций по договору (live address lane). | +| X036 | True | ok_or_factual | factual | bank_operations_by_contract | None | платежки по дог 24/15 | Собран список банковских операций по договору (live address lane). | +| X037 | True | ok_or_factual | factual | bank_operations_by_contract | None | выписка по контракту 24/15 | Собран список банковских операций по договору (live address lane). | +| X038 | False | likely_blocked_route | partial_coverage | bank_operations_by_contract | empty_match | bank ops by contract 24/15 | В live-данных по текущему фильтру записи не найдены. | +| X039 | False | blocked_execution_error | partial_coverage | bank_operations_by_contract | execution_error | покажи банк опер по дог 24/15 пж | Не удалось выполнить адресный live-запрос в V1. | +| X040 | True | ok_or_factual | factual | bank_operations_by_contract | None | епт транзакции договор 24/15 | Собран список банковских операций по договору (live address lane). | | X041 | True | ok_or_factual | factual | account_balance_snapshot | None | покажи сальдо по счету 60 за 2020 | Адресный срез по счету собран (по движениям live MCP). | | X042 | True | ok_or_factual | factual | account_balance_snapshot | None | а теперь только май 2020 | Адресный срез по счету собран (по движениям live MCP). | diff --git a/docs/ADDRESS/runs/2026-04-02_Address_Slang_Live_Stress_2026-04-02_12-28-31/failures_only.json b/docs/ADDRESS/runs/2026-04-02_Address_Slang_Live_Stress_2026-04-02_12-28-31/failures_only.json index 2c0b351..b51f884 100644 --- a/docs/ADDRESS/runs/2026-04-02_Address_Slang_Live_Stress_2026-04-02_12-28-31/failures_only.json +++ b/docs/ADDRESS/runs/2026-04-02_Address_Slang_Live_Stress_2026-04-02_12-28-31/failures_only.json @@ -1210,7 +1210,7 @@ { "index": 43, "id": "S043", - "question": "покажи документы по договору 15/24 за 2020", + "question": "покажи документы по договору 24/15 за 2020", "session": null, "session_id": "asst-2026-04-02_Address_Slang_Live_Stress_2026-04-02_12-28-31-s043", "status_code": 200, @@ -1286,7 +1286,7 @@ "extracted_filters": { "sort": "period_desc", "limit": 20, - "contract": "15/24", + "contract": "24/15", "period_from": "2020-01-01", "period_to": "2020-12-31" }, @@ -1296,8 +1296,8 @@ "account_scope_mode": "preferred", "account_scope_fallback_applied": true, "anchor_type": "contract", - "anchor_value_raw": "15/24", - "anchor_value_resolved": "15/24", + "anchor_value_raw": "24/15", + "anchor_value_resolved": "24/15", "resolver_confidence": "medium", "ambiguity_count": 0, "match_failure_stage": "materialized_but_not_anchor_matched", @@ -1340,10 +1340,10 @@ "llm_decomposition_attempted": true, "llm_provider_used": "local", "llm_decomposition_trace_id": "qbe5oPJGsCXhNU", - "llm_decomposition_effective_message": "Показать документы по договору 15/24 за период 2020 года.", + "llm_decomposition_effective_message": "Показать документы по договору 24/15 за период 2020 года.", "llm_decomposition_reason": "normalized_fragment_applied", "fallback_rule_hit": null, - "sanitized_user_message": "покажи документы по договору 15/24 за 2020", + "sanitized_user_message": "покажи документы по договору 24/15 за 2020", "tool_gate_decision": "run_address_lane", "tool_gate_reason": "address_mode_classifier_detected", "answer_structure_v11": null, @@ -1353,7 +1353,7 @@ "trace_id": "qbe5oPJGsCXhNU", "prompt_version": "normalizer_v2_0_2", "applied": true, - "effective_message": "Показать документы по договору 15/24 за период 2020 года." + "effective_message": "Показать документы по договору 24/15 за период 2020 года." } }, "error_code": null, @@ -1362,7 +1362,7 @@ { "index": 46, "id": "S046", - "question": "docs by contract 15/24 year 2020", + "question": "docs by contract 24/15 year 2020", "session": null, "session_id": "asst-2026-04-02_Address_Slang_Live_Stress_2026-04-02_12-28-31-s046", "status_code": 200, @@ -1437,7 +1437,7 @@ "extracted_filters": { "sort": "period_desc", "limit": 20, - "contract": "15/24 year 2020", + "contract": "24/15 year 2020", "period_from": "2020-01-01", "period_to": "2020-12-31" }, @@ -1447,8 +1447,8 @@ "account_scope_mode": "preferred", "account_scope_fallback_applied": true, "anchor_type": "contract", - "anchor_value_raw": "15/24 year 2020", - "anchor_value_resolved": "15/24 year 2020", + "anchor_value_raw": "24/15 year 2020", + "anchor_value_resolved": "24/15 year 2020", "resolver_confidence": "medium", "ambiguity_count": 0, "match_failure_stage": "materialized_but_not_anchor_matched", @@ -1491,7 +1491,7 @@ "llm_decomposition_attempted": true, "llm_provider_used": "local", "llm_decomposition_trace_id": "sDUTfcIdPlrHej", - "llm_decomposition_effective_message": "docs by contract 15/24 year 2020", + "llm_decomposition_effective_message": "docs by contract 24/15 year 2020", "llm_decomposition_reason": "normalized_fragment_same", "fallback_rule_hit": null, "sanitized_user_message": "документы by contract 15/2024 год 2020", @@ -1504,7 +1504,7 @@ "trace_id": "sDUTfcIdPlrHej", "prompt_version": "normalizer_v2_0_2", "applied": false, - "effective_message": "docs by contract 15/24 year 2020" + "effective_message": "docs by contract 24/15 year 2020" } }, "error_code": null, @@ -1513,7 +1513,7 @@ { "index": 49, "id": "S049", - "question": "плс документы договор №15/24", + "question": "плс документы договор №24/15", "session": null, "session_id": "asst-2026-04-02_Address_Slang_Live_Stress_2026-04-02_12-28-31-s049", "status_code": 200, @@ -1588,7 +1588,7 @@ "extracted_filters": { "sort": "period_desc", "limit": 20, - "contract": "номер 15/24" + "contract": "номер 24/15" }, "missing_required_filters": [], "selected_recipe": "address_documents_by_contract_v1", @@ -1596,8 +1596,8 @@ "account_scope_mode": "preferred", "account_scope_fallback_applied": false, "anchor_type": "contract", - "anchor_value_raw": "номер 15/24", - "anchor_value_resolved": "номер 15/24", + "anchor_value_raw": "номер 24/15", + "anchor_value_resolved": "номер 24/15", "resolver_confidence": "medium", "ambiguity_count": 0, "match_failure_stage": "materialized_but_not_anchor_matched", @@ -1640,10 +1640,10 @@ "llm_decomposition_attempted": true, "llm_provider_used": "local", "llm_decomposition_trace_id": "T1K-UNkkR8oEG4", - "llm_decomposition_effective_message": "пожалуйста, предоставьте документы по договору номер 15/24", + "llm_decomposition_effective_message": "пожалуйста, предоставьте документы по договору номер 24/15", "llm_decomposition_reason": "normalized_fragment_applied", "fallback_rule_hit": null, - "sanitized_user_message": "документы договор №15/24", + "sanitized_user_message": "документы договор №24/15", "tool_gate_decision": "run_address_lane", "tool_gate_reason": "address_mode_classifier_detected", "answer_structure_v11": null, @@ -1653,7 +1653,7 @@ "trace_id": "T1K-UNkkR8oEG4", "prompt_version": "normalizer_v2_0_2", "applied": true, - "effective_message": "пожалуйста, предоставьте документы по договору номер 15/24" + "effective_message": "пожалуйста, предоставьте документы по договору номер 24/15" } }, "error_code": null, @@ -1662,7 +1662,7 @@ { "index": 54, "id": "S054", - "question": "bank ops by contract 15/24", + "question": "bank ops by contract 24/15", "session": null, "session_id": "asst-2026-04-02_Address_Slang_Live_Stress_2026-04-02_12-28-31-s054", "status_code": 200, @@ -1737,7 +1737,7 @@ "extracted_filters": { "sort": "period_desc", "limit": 20, - "contract": "15/24 в банковском учете" + "contract": "24/15 в банковском учете" }, "missing_required_filters": [], "selected_recipe": "address_bank_operations_by_contract_v1", @@ -1745,8 +1745,8 @@ "account_scope_mode": "preferred", "account_scope_fallback_applied": false, "anchor_type": "contract", - "anchor_value_raw": "15/24 в банковском учете", - "anchor_value_resolved": "15/24 в банковском учете", + "anchor_value_raw": "24/15 в банковском учете", + "anchor_value_resolved": "24/15 в банковском учете", "resolver_confidence": "medium", "ambiguity_count": 0, "match_failure_stage": "materialized_but_not_anchor_matched", @@ -1789,10 +1789,10 @@ "llm_decomposition_attempted": true, "llm_provider_used": "local", "llm_decomposition_trace_id": "FRIy2IFM8jBw6I", - "llm_decomposition_effective_message": "операции по договору 15/24 в банковском учете", + "llm_decomposition_effective_message": "операции по договору 24/15 в банковском учете", "llm_decomposition_reason": "normalized_fragment_applied", "fallback_rule_hit": null, - "sanitized_user_message": "bank ops by contract 15/24", + "sanitized_user_message": "bank ops by contract 24/15", "tool_gate_decision": "run_address_lane", "tool_gate_reason": "address_mode_classifier_detected", "answer_structure_v11": null, @@ -1802,7 +1802,7 @@ "trace_id": "FRIy2IFM8jBw6I", "prompt_version": "normalizer_v2_0_2", "applied": true, - "effective_message": "операции по договору 15/24 в банковском учете" + "effective_message": "операции по договору 24/15 в банковском учете" } }, "error_code": null, @@ -2868,7 +2868,7 @@ { "index": 89, "id": "X029", - "question": "доки по договору 15/24 за 2020", + "question": "доки по договору 24/15 за 2020", "session": null, "session_id": "asst-2026-04-02_Address_Slang_Live_Stress_2026-04-02_12-28-31-x029", "status_code": 200, @@ -2943,7 +2943,7 @@ "extracted_filters": { "sort": "period_desc", "limit": 20, - "contract": "15/24", + "contract": "24/15", "period_from": "2020-01-01", "period_to": "2020-12-31" }, @@ -2953,8 +2953,8 @@ "account_scope_mode": "preferred", "account_scope_fallback_applied": true, "anchor_type": "contract", - "anchor_value_raw": "15/24", - "anchor_value_resolved": "15/24", + "anchor_value_raw": "24/15", + "anchor_value_resolved": "24/15", "resolver_confidence": "medium", "ambiguity_count": 0, "match_failure_stage": "materialized_but_not_anchor_matched", @@ -2997,10 +2997,10 @@ "llm_decomposition_attempted": true, "llm_provider_used": "local", "llm_decomposition_trace_id": "vtj10eK87oPheh", - "llm_decomposition_effective_message": "Документы по договору 15/24 за 2020 год.", + "llm_decomposition_effective_message": "Документы по договору 24/15 за 2020 год.", "llm_decomposition_reason": "normalized_fragment_applied", "fallback_rule_hit": null, - "sanitized_user_message": "доки по договору 15/24 за 2020", + "sanitized_user_message": "доки по договору 24/15 за 2020", "tool_gate_decision": "run_address_lane", "tool_gate_reason": "address_mode_classifier_detected", "answer_structure_v11": null, @@ -3010,7 +3010,7 @@ "trace_id": "vtj10eK87oPheh", "prompt_version": "normalizer_v2_0_2", "applied": true, - "effective_message": "Документы по договору 15/24 за 2020 год." + "effective_message": "Документы по договору 24/15 за 2020 год." } }, "error_code": null, @@ -3019,7 +3019,7 @@ { "index": 93, "id": "X033", - "question": "договор 15/24 выведи доки", + "question": "договор 24/15 выведи доки", "session": null, "session_id": "asst-2026-04-02_Address_Slang_Live_Stress_2026-04-02_12-28-31-x033", "status_code": 200, @@ -3095,7 +3095,7 @@ "extracted_filters": { "sort": "period_desc", "limit": 20, - "contract": "15/24 выведите связанные документы" + "contract": "24/15 выведите связанные документы" }, "missing_required_filters": [], "selected_recipe": "address_documents_by_contract_v1", @@ -3103,8 +3103,8 @@ "account_scope_mode": "preferred", "account_scope_fallback_applied": false, "anchor_type": "contract", - "anchor_value_raw": "15/24 выведите связанные документы", - "anchor_value_resolved": "15/24 выведите связанные документы", + "anchor_value_raw": "24/15 выведите связанные документы", + "anchor_value_resolved": "24/15 выведите связанные документы", "resolver_confidence": "medium", "ambiguity_count": 0, "match_failure_stage": "materialized_but_not_anchor_matched", @@ -3147,10 +3147,10 @@ "llm_decomposition_attempted": true, "llm_provider_used": "local", "llm_decomposition_trace_id": "z2cI2si1gyFUyp", - "llm_decomposition_effective_message": "Для договора 15/24 выведите связанные документы.", + "llm_decomposition_effective_message": "Для договора 24/15 выведите связанные документы.", "llm_decomposition_reason": "normalized_fragment_applied", "fallback_rule_hit": null, - "sanitized_user_message": "договор 15/24 выведи доки", + "sanitized_user_message": "договор 24/15 выведи доки", "tool_gate_decision": "run_address_lane", "tool_gate_reason": "address_mode_classifier_detected", "answer_structure_v11": null, @@ -3160,7 +3160,7 @@ "trace_id": "z2cI2si1gyFUyp", "prompt_version": "normalizer_v2_0_2", "applied": true, - "effective_message": "Для договора 15/24 выведите связанные документы." + "effective_message": "Для договора 24/15 выведите связанные документы." } }, "error_code": null, @@ -3169,7 +3169,7 @@ { "index": 98, "id": "X038", - "question": "bank ops by contract 15/24", + "question": "bank ops by contract 24/15", "session": null, "session_id": "asst-2026-04-02_Address_Slang_Live_Stress_2026-04-02_12-28-31-x038", "status_code": 200, @@ -3244,7 +3244,7 @@ "extracted_filters": { "sort": "period_desc", "limit": 20, - "contract": "15/24 в банковском учете" + "contract": "24/15 в банковском учете" }, "missing_required_filters": [], "selected_recipe": "address_bank_operations_by_contract_v1", @@ -3252,8 +3252,8 @@ "account_scope_mode": "preferred", "account_scope_fallback_applied": false, "anchor_type": "contract", - "anchor_value_raw": "15/24 в банковском учете", - "anchor_value_resolved": "15/24 в банковском учете", + "anchor_value_raw": "24/15 в банковском учете", + "anchor_value_resolved": "24/15 в банковском учете", "resolver_confidence": "medium", "ambiguity_count": 0, "match_failure_stage": "materialized_but_not_anchor_matched", @@ -3296,10 +3296,10 @@ "llm_decomposition_attempted": true, "llm_provider_used": "local", "llm_decomposition_trace_id": "6vJfN38mxWRHfF", - "llm_decomposition_effective_message": "операции по договору 15/24 в банковском учете", + "llm_decomposition_effective_message": "операции по договору 24/15 в банковском учете", "llm_decomposition_reason": "normalized_fragment_applied", "fallback_rule_hit": null, - "sanitized_user_message": "bank ops by contract 15/24", + "sanitized_user_message": "bank ops by contract 24/15", "tool_gate_decision": "run_address_lane", "tool_gate_reason": "address_mode_classifier_detected", "answer_structure_v11": null, @@ -3309,7 +3309,7 @@ "trace_id": "6vJfN38mxWRHfF", "prompt_version": "normalizer_v2_0_2", "applied": true, - "effective_message": "операции по договору 15/24 в банковском учете" + "effective_message": "операции по договору 24/15 в банковском учете" } }, "error_code": null, @@ -3318,7 +3318,7 @@ { "index": 99, "id": "X039", - "question": "покажи банк опер по дог 15/24 пж", + "question": "покажи банк опер по дог 24/15 пж", "session": null, "session_id": "asst-2026-04-02_Address_Slang_Live_Stress_2026-04-02_12-28-31-x039", "status_code": 200, @@ -3395,7 +3395,7 @@ "extracted_filters": { "sort": "period_desc", "limit": 20, - "contract": "15/24" + "contract": "24/15" }, "missing_required_filters": [], "selected_recipe": "address_bank_operations_by_contract_v1", @@ -3403,8 +3403,8 @@ "account_scope_mode": "preferred", "account_scope_fallback_applied": false, "anchor_type": "contract", - "anchor_value_raw": "15/24", - "anchor_value_resolved": "15/24", + "anchor_value_raw": "24/15", + "anchor_value_resolved": "24/15", "resolver_confidence": "medium", "ambiguity_count": 0, "match_failure_stage": "none", @@ -3436,10 +3436,10 @@ "llm_decomposition_attempted": true, "llm_provider_used": "local", "llm_decomposition_trace_id": "sRvH_EVTQl42AN", - "llm_decomposition_effective_message": "Показать банковские операции по договору 15/24.", + "llm_decomposition_effective_message": "Показать банковские операции по договору 24/15.", "llm_decomposition_reason": "normalized_fragment_applied", "fallback_rule_hit": null, - "sanitized_user_message": "покажи банк операции по договор 15/24", + "sanitized_user_message": "покажи банк операции по договор 24/15", "tool_gate_decision": "run_address_lane", "tool_gate_reason": "address_mode_classifier_detected", "answer_structure_v11": null, @@ -3449,7 +3449,7 @@ "trace_id": "sRvH_EVTQl42AN", "prompt_version": "normalizer_v2_0_2", "applied": true, - "effective_message": "Показать банковские операции по договору 15/24." + "effective_message": "Показать банковские операции по договору 24/15." } }, "error_code": null, diff --git a/docs/ADDRESS/runs/2026-04-02_Address_Slang_Live_Stress_2026-04-02_12-28-31/full_live_results.json b/docs/ADDRESS/runs/2026-04-02_Address_Slang_Live_Stress_2026-04-02_12-28-31/full_live_results.json index 8b0e91f..12d9eee 100644 --- a/docs/ADDRESS/runs/2026-04-02_Address_Slang_Live_Stress_2026-04-02_12-28-31/full_live_results.json +++ b/docs/ADDRESS/runs/2026-04-02_Address_Slang_Live_Stress_2026-04-02_12-28-31/full_live_results.json @@ -6392,7 +6392,7 @@ { "index": 43, "id": "S043", - "question": "покажи документы по договору 15/24 за 2020", + "question": "покажи документы по договору 24/15 за 2020", "session": null, "session_id": "asst-2026-04-02_Address_Slang_Live_Stress_2026-04-02_12-28-31-s043", "status_code": 200, @@ -6468,7 +6468,7 @@ "extracted_filters": { "sort": "period_desc", "limit": 20, - "contract": "15/24", + "contract": "24/15", "period_from": "2020-01-01", "period_to": "2020-12-31" }, @@ -6478,8 +6478,8 @@ "account_scope_mode": "preferred", "account_scope_fallback_applied": true, "anchor_type": "contract", - "anchor_value_raw": "15/24", - "anchor_value_resolved": "15/24", + "anchor_value_raw": "24/15", + "anchor_value_resolved": "24/15", "resolver_confidence": "medium", "ambiguity_count": 0, "match_failure_stage": "materialized_but_not_anchor_matched", @@ -6522,10 +6522,10 @@ "llm_decomposition_attempted": true, "llm_provider_used": "local", "llm_decomposition_trace_id": "qbe5oPJGsCXhNU", - "llm_decomposition_effective_message": "Показать документы по договору 15/24 за период 2020 года.", + "llm_decomposition_effective_message": "Показать документы по договору 24/15 за период 2020 года.", "llm_decomposition_reason": "normalized_fragment_applied", "fallback_rule_hit": null, - "sanitized_user_message": "покажи документы по договору 15/24 за 2020", + "sanitized_user_message": "покажи документы по договору 24/15 за 2020", "tool_gate_decision": "run_address_lane", "tool_gate_reason": "address_mode_classifier_detected", "answer_structure_v11": null, @@ -6535,7 +6535,7 @@ "trace_id": "qbe5oPJGsCXhNU", "prompt_version": "normalizer_v2_0_2", "applied": true, - "effective_message": "Показать документы по договору 15/24 за период 2020 года." + "effective_message": "Показать документы по договору 24/15 за период 2020 года." } }, "error_code": null, @@ -6544,7 +6544,7 @@ { "index": 44, "id": "S044", - "question": "доки по дог. 15/24 за 2020", + "question": "доки по дог. 24/15 за 2020", "session": null, "session_id": "asst-2026-04-02_Address_Slang_Live_Stress_2026-04-02_12-28-31-s044", "status_code": 200, @@ -6620,7 +6620,7 @@ "extracted_filters": { "sort": "period_desc", "limit": 20, - "contract": "15/24", + "contract": "24/15", "period_from": "2020-01-01", "period_to": "2020-12-31" }, @@ -6630,8 +6630,8 @@ "account_scope_mode": "preferred", "account_scope_fallback_applied": false, "anchor_type": "contract", - "anchor_value_raw": "15/24", - "anchor_value_resolved": "15/24", + "anchor_value_raw": "24/15", + "anchor_value_resolved": "24/15", "resolver_confidence": "medium", "ambiguity_count": 0, "match_failure_stage": "none", @@ -6674,10 +6674,10 @@ "llm_decomposition_attempted": true, "llm_provider_used": "local", "llm_decomposition_trace_id": "ybQS2_-mZA5bF0", - "llm_decomposition_effective_message": "Документы по договору 15/24 за 2020 год.", + "llm_decomposition_effective_message": "Документы по договору 24/15 за 2020 год.", "llm_decomposition_reason": "normalized_fragment_applied", "fallback_rule_hit": null, - "sanitized_user_message": "доки по договор 15/24 за 2020", + "sanitized_user_message": "доки по договор 24/15 за 2020", "tool_gate_decision": "run_address_lane", "tool_gate_reason": "address_mode_classifier_detected", "answer_structure_v11": null, @@ -6687,7 +6687,7 @@ "trace_id": "ybQS2_-mZA5bF0", "prompt_version": "normalizer_v2_0_2", "applied": true, - "effective_message": "Документы по договору 15/24 за 2020 год." + "effective_message": "Документы по договору 24/15 за 2020 год." } }, "error_code": null, @@ -6696,7 +6696,7 @@ { "index": 45, "id": "S045", - "question": "какие документы по контракту 15/24", + "question": "какие документы по контракту 24/15", "session": null, "session_id": "asst-2026-04-02_Address_Slang_Live_Stress_2026-04-02_12-28-31-s045", "status_code": 200, @@ -6773,7 +6773,7 @@ "extracted_filters": { "sort": "period_desc", "limit": 20, - "contract": "15/24" + "contract": "24/15" }, "missing_required_filters": [], "selected_recipe": "address_documents_by_contract_v1", @@ -6781,8 +6781,8 @@ "account_scope_mode": "preferred", "account_scope_fallback_applied": false, "anchor_type": "contract", - "anchor_value_raw": "15/24", - "anchor_value_resolved": "15/24", + "anchor_value_raw": "24/15", + "anchor_value_resolved": "24/15", "resolver_confidence": "medium", "ambiguity_count": 0, "match_failure_stage": "none", @@ -6825,10 +6825,10 @@ "llm_decomposition_attempted": true, "llm_provider_used": "local", "llm_decomposition_trace_id": "GAY8rvVvkYY0ks", - "llm_decomposition_effective_message": "Получить список документов, связанных с контрактом 15/24.", + "llm_decomposition_effective_message": "Получить список документов, связанных с контрактом 24/15.", "llm_decomposition_reason": "normalized_fragment_applied", "fallback_rule_hit": null, - "sanitized_user_message": "какие документы по контракту 15/24", + "sanitized_user_message": "какие документы по контракту 24/15", "tool_gate_decision": "run_address_lane", "tool_gate_reason": "address_mode_classifier_detected", "answer_structure_v11": null, @@ -6838,7 +6838,7 @@ "trace_id": "GAY8rvVvkYY0ks", "prompt_version": "normalizer_v2_0_2", "applied": true, - "effective_message": "Получить список документов, связанных с контрактом 15/24." + "effective_message": "Получить список документов, связанных с контрактом 24/15." } }, "error_code": null, @@ -6847,7 +6847,7 @@ { "index": 46, "id": "S046", - "question": "docs by contract 15/24 year 2020", + "question": "docs by contract 24/15 year 2020", "session": null, "session_id": "asst-2026-04-02_Address_Slang_Live_Stress_2026-04-02_12-28-31-s046", "status_code": 200, @@ -6922,7 +6922,7 @@ "extracted_filters": { "sort": "period_desc", "limit": 20, - "contract": "15/24 year 2020", + "contract": "24/15 year 2020", "period_from": "2020-01-01", "period_to": "2020-12-31" }, @@ -6932,8 +6932,8 @@ "account_scope_mode": "preferred", "account_scope_fallback_applied": true, "anchor_type": "contract", - "anchor_value_raw": "15/24 year 2020", - "anchor_value_resolved": "15/24 year 2020", + "anchor_value_raw": "24/15 year 2020", + "anchor_value_resolved": "24/15 year 2020", "resolver_confidence": "medium", "ambiguity_count": 0, "match_failure_stage": "materialized_but_not_anchor_matched", @@ -6976,7 +6976,7 @@ "llm_decomposition_attempted": true, "llm_provider_used": "local", "llm_decomposition_trace_id": "sDUTfcIdPlrHej", - "llm_decomposition_effective_message": "docs by contract 15/24 year 2020", + "llm_decomposition_effective_message": "docs by contract 24/15 year 2020", "llm_decomposition_reason": "normalized_fragment_same", "fallback_rule_hit": null, "sanitized_user_message": "документы by contract 15/2024 год 2020", @@ -6989,7 +6989,7 @@ "trace_id": "sDUTfcIdPlrHej", "prompt_version": "normalizer_v2_0_2", "applied": false, - "effective_message": "docs by contract 15/24 year 2020" + "effective_message": "docs by contract 24/15 year 2020" } }, "error_code": null, @@ -6998,7 +6998,7 @@ { "index": 47, "id": "S047", - "question": "бля, покажи по договору 15/24 доки", + "question": "бля, покажи по договору 24/15 доки", "session": null, "session_id": "asst-2026-04-02_Address_Slang_Live_Stress_2026-04-02_12-28-31-s047", "status_code": 200, @@ -7075,7 +7075,7 @@ "extracted_filters": { "sort": "period_desc", "limit": 20, - "contract": "15/24" + "contract": "24/15" }, "missing_required_filters": [], "selected_recipe": "address_documents_by_contract_v1", @@ -7083,8 +7083,8 @@ "account_scope_mode": "preferred", "account_scope_fallback_applied": false, "anchor_type": "contract", - "anchor_value_raw": "15/24", - "anchor_value_resolved": "15/24", + "anchor_value_raw": "24/15", + "anchor_value_resolved": "24/15", "resolver_confidence": "medium", "ambiguity_count": 0, "match_failure_stage": "none", @@ -7127,10 +7127,10 @@ "llm_decomposition_attempted": true, "llm_provider_used": "local", "llm_decomposition_trace_id": "FXZJCEO7WZ_cBU", - "llm_decomposition_effective_message": "покажи документы по договору 15/24", + "llm_decomposition_effective_message": "покажи документы по договору 24/15", "llm_decomposition_reason": "normalized_fragment_applied", "fallback_rule_hit": null, - "sanitized_user_message": "покажи по договору 15/24 доки", + "sanitized_user_message": "покажи по договору 24/15 доки", "tool_gate_decision": "run_address_lane", "tool_gate_reason": "address_mode_classifier_detected", "answer_structure_v11": null, @@ -7140,7 +7140,7 @@ "trace_id": "FXZJCEO7WZ_cBU", "prompt_version": "normalizer_v2_0_2", "applied": true, - "effective_message": "покажи документы по договору 15/24" + "effective_message": "покажи документы по договору 24/15" } }, "error_code": null, @@ -7149,7 +7149,7 @@ { "index": 48, "id": "S048", - "question": "договор 15/24 документы", + "question": "договор 24/15 документы", "session": null, "session_id": "asst-2026-04-02_Address_Slang_Live_Stress_2026-04-02_12-28-31-s048", "status_code": 200, @@ -7225,7 +7225,7 @@ "extracted_filters": { "sort": "period_desc", "limit": 20, - "contract": "15/24" + "contract": "24/15" }, "missing_required_filters": [], "selected_recipe": "address_documents_by_contract_v1", @@ -7233,8 +7233,8 @@ "account_scope_mode": "preferred", "account_scope_fallback_applied": false, "anchor_type": "contract", - "anchor_value_raw": "15/24", - "anchor_value_resolved": "15/24", + "anchor_value_raw": "24/15", + "anchor_value_resolved": "24/15", "resolver_confidence": "medium", "ambiguity_count": 0, "match_failure_stage": "none", @@ -7277,10 +7277,10 @@ "llm_decomposition_attempted": true, "llm_provider_used": "local", "llm_decomposition_trace_id": "IX94HkDMebmtM6", - "llm_decomposition_effective_message": "документы по договору 15/24", + "llm_decomposition_effective_message": "документы по договору 24/15", "llm_decomposition_reason": "normalized_fragment_applied", "fallback_rule_hit": null, - "sanitized_user_message": "договор 15/24 документы", + "sanitized_user_message": "договор 24/15 документы", "tool_gate_decision": "run_address_lane", "tool_gate_reason": "address_mode_classifier_detected", "answer_structure_v11": null, @@ -7290,7 +7290,7 @@ "trace_id": "IX94HkDMebmtM6", "prompt_version": "normalizer_v2_0_2", "applied": true, - "effective_message": "документы по договору 15/24" + "effective_message": "документы по договору 24/15" } }, "error_code": null, @@ -7299,7 +7299,7 @@ { "index": 49, "id": "S049", - "question": "плс документы договор №15/24", + "question": "плс документы договор №24/15", "session": null, "session_id": "asst-2026-04-02_Address_Slang_Live_Stress_2026-04-02_12-28-31-s049", "status_code": 200, @@ -7374,7 +7374,7 @@ "extracted_filters": { "sort": "period_desc", "limit": 20, - "contract": "номер 15/24" + "contract": "номер 24/15" }, "missing_required_filters": [], "selected_recipe": "address_documents_by_contract_v1", @@ -7382,8 +7382,8 @@ "account_scope_mode": "preferred", "account_scope_fallback_applied": false, "anchor_type": "contract", - "anchor_value_raw": "номер 15/24", - "anchor_value_resolved": "номер 15/24", + "anchor_value_raw": "номер 24/15", + "anchor_value_resolved": "номер 24/15", "resolver_confidence": "medium", "ambiguity_count": 0, "match_failure_stage": "materialized_but_not_anchor_matched", @@ -7426,10 +7426,10 @@ "llm_decomposition_attempted": true, "llm_provider_used": "local", "llm_decomposition_trace_id": "T1K-UNkkR8oEG4", - "llm_decomposition_effective_message": "пожалуйста, предоставьте документы по договору номер 15/24", + "llm_decomposition_effective_message": "пожалуйста, предоставьте документы по договору номер 24/15", "llm_decomposition_reason": "normalized_fragment_applied", "fallback_rule_hit": null, - "sanitized_user_message": "документы договор №15/24", + "sanitized_user_message": "документы договор №24/15", "tool_gate_decision": "run_address_lane", "tool_gate_reason": "address_mode_classifier_detected", "answer_structure_v11": null, @@ -7439,7 +7439,7 @@ "trace_id": "T1K-UNkkR8oEG4", "prompt_version": "normalizer_v2_0_2", "applied": true, - "effective_message": "пожалуйста, предоставьте документы по договору номер 15/24" + "effective_message": "пожалуйста, предоставьте документы по договору номер 24/15" } }, "error_code": null, @@ -7448,7 +7448,7 @@ { "index": 50, "id": "S050", - "question": "покеж документы по 15/24", + "question": "покеж документы по 24/15", "session": null, "session_id": "asst-2026-04-02_Address_Slang_Live_Stress_2026-04-02_12-28-31-s050", "status_code": 200, @@ -7524,7 +7524,7 @@ "extracted_filters": { "sort": "period_desc", "limit": 20, - "contract": "15/24" + "contract": "24/15" }, "missing_required_filters": [], "selected_recipe": "address_documents_by_contract_v1", @@ -7532,8 +7532,8 @@ "account_scope_mode": "preferred", "account_scope_fallback_applied": false, "anchor_type": "contract", - "anchor_value_raw": "15/24", - "anchor_value_resolved": "15/24", + "anchor_value_raw": "24/15", + "anchor_value_resolved": "24/15", "resolver_confidence": "medium", "ambiguity_count": 0, "match_failure_stage": "none", @@ -7576,10 +7576,10 @@ "llm_decomposition_attempted": true, "llm_provider_used": "local", "llm_decomposition_trace_id": "9x72CWROcIZLzJ", - "llm_decomposition_effective_message": "покеж документы по 15/24", + "llm_decomposition_effective_message": "покеж документы по 24/15", "llm_decomposition_reason": "normalized_fragment_rejected_intent_conflict", "fallback_rule_hit": null, - "sanitized_user_message": "покеж документы по 15/24", + "sanitized_user_message": "покеж документы по 24/15", "tool_gate_decision": "run_address_lane", "tool_gate_reason": "address_mode_classifier_detected", "answer_structure_v11": null, @@ -7589,7 +7589,7 @@ "trace_id": "9x72CWROcIZLzJ", "prompt_version": "normalizer_v2_0_2", "applied": false, - "effective_message": "покеж документы по 15/24" + "effective_message": "покеж документы по 24/15" } }, "error_code": null, @@ -7598,7 +7598,7 @@ { "index": 51, "id": "S051", - "question": "банковские операции по договору 15/24", + "question": "банковские операции по договору 24/15", "session": null, "session_id": "asst-2026-04-02_Address_Slang_Live_Stress_2026-04-02_12-28-31-s051", "status_code": 200, @@ -7673,7 +7673,7 @@ "extracted_filters": { "sort": "period_desc", "limit": 20, - "contract": "15/24" + "contract": "24/15" }, "missing_required_filters": [], "selected_recipe": "address_bank_operations_by_contract_v1", @@ -7681,8 +7681,8 @@ "account_scope_mode": "preferred", "account_scope_fallback_applied": false, "anchor_type": "contract", - "anchor_value_raw": "15/24", - "anchor_value_resolved": "15/24", + "anchor_value_raw": "24/15", + "anchor_value_resolved": "24/15", "resolver_confidence": "medium", "ambiguity_count": 0, "match_failure_stage": "none", @@ -7725,10 +7725,10 @@ "llm_decomposition_attempted": true, "llm_provider_used": "local", "llm_decomposition_trace_id": "qAI2rBGquMj3sO", - "llm_decomposition_effective_message": "банковские операции по договору 15/24", + "llm_decomposition_effective_message": "банковские операции по договору 24/15", "llm_decomposition_reason": "normalized_fragment_same", "fallback_rule_hit": null, - "sanitized_user_message": "банковские операции по договору 15/24", + "sanitized_user_message": "банковские операции по договору 24/15", "tool_gate_decision": "run_address_lane", "tool_gate_reason": "address_mode_classifier_detected", "answer_structure_v11": null, @@ -7738,7 +7738,7 @@ "trace_id": "qAI2rBGquMj3sO", "prompt_version": "normalizer_v2_0_2", "applied": false, - "effective_message": "банковские операции по договору 15/24" + "effective_message": "банковские операции по договору 24/15" } }, "error_code": null, @@ -7747,7 +7747,7 @@ { "index": 52, "id": "S052", - "question": "платежи по договору 15/24", + "question": "платежи по договору 24/15", "session": null, "session_id": "asst-2026-04-02_Address_Slang_Live_Stress_2026-04-02_12-28-31-s052", "status_code": 200, @@ -7822,7 +7822,7 @@ "extracted_filters": { "sort": "period_desc", "limit": 20, - "contract": "15/24" + "contract": "24/15" }, "missing_required_filters": [], "selected_recipe": "address_bank_operations_by_contract_v1", @@ -7830,8 +7830,8 @@ "account_scope_mode": "preferred", "account_scope_fallback_applied": false, "anchor_type": "contract", - "anchor_value_raw": "15/24", - "anchor_value_resolved": "15/24", + "anchor_value_raw": "24/15", + "anchor_value_resolved": "24/15", "resolver_confidence": "medium", "ambiguity_count": 0, "match_failure_stage": "none", @@ -7874,10 +7874,10 @@ "llm_decomposition_attempted": true, "llm_provider_used": "local", "llm_decomposition_trace_id": "SiQmVOwbw-0Emc", - "llm_decomposition_effective_message": "платежи по договору 15/24", + "llm_decomposition_effective_message": "платежи по договору 24/15", "llm_decomposition_reason": "normalized_fragment_same", "fallback_rule_hit": null, - "sanitized_user_message": "платежи по договору 15/24", + "sanitized_user_message": "платежи по договору 24/15", "tool_gate_decision": "run_address_lane", "tool_gate_reason": "address_mode_classifier_detected", "answer_structure_v11": null, @@ -7887,7 +7887,7 @@ "trace_id": "SiQmVOwbw-0Emc", "prompt_version": "normalizer_v2_0_2", "applied": false, - "effective_message": "платежи по договору 15/24" + "effective_message": "платежи по договору 24/15" } }, "error_code": null, @@ -7896,7 +7896,7 @@ { "index": 53, "id": "S053", - "question": "выписка по договору 15/24", + "question": "выписка по договору 24/15", "session": null, "session_id": "asst-2026-04-02_Address_Slang_Live_Stress_2026-04-02_12-28-31-s053", "status_code": 200, @@ -7971,7 +7971,7 @@ "extracted_filters": { "sort": "period_desc", "limit": 20, - "contract": "15/24" + "contract": "24/15" }, "missing_required_filters": [], "selected_recipe": "address_bank_operations_by_contract_v1", @@ -7979,8 +7979,8 @@ "account_scope_mode": "preferred", "account_scope_fallback_applied": false, "anchor_type": "contract", - "anchor_value_raw": "15/24", - "anchor_value_resolved": "15/24", + "anchor_value_raw": "24/15", + "anchor_value_resolved": "24/15", "resolver_confidence": "medium", "ambiguity_count": 0, "match_failure_stage": "none", @@ -8023,10 +8023,10 @@ "llm_decomposition_attempted": true, "llm_provider_used": "local", "llm_decomposition_trace_id": "RK36L_qcQejQ0U", - "llm_decomposition_effective_message": "statement by contract 15/24", + "llm_decomposition_effective_message": "statement by contract 24/15", "llm_decomposition_reason": "normalized_fragment_applied", "fallback_rule_hit": null, - "sanitized_user_message": "выписка по договору 15/24", + "sanitized_user_message": "выписка по договору 24/15", "tool_gate_decision": "run_address_lane", "tool_gate_reason": "address_mode_classifier_detected", "answer_structure_v11": null, @@ -8036,7 +8036,7 @@ "trace_id": "RK36L_qcQejQ0U", "prompt_version": "normalizer_v2_0_2", "applied": true, - "effective_message": "statement by contract 15/24" + "effective_message": "statement by contract 24/15" } }, "error_code": null, @@ -8045,7 +8045,7 @@ { "index": 54, "id": "S054", - "question": "bank ops by contract 15/24", + "question": "bank ops by contract 24/15", "session": null, "session_id": "asst-2026-04-02_Address_Slang_Live_Stress_2026-04-02_12-28-31-s054", "status_code": 200, @@ -8120,7 +8120,7 @@ "extracted_filters": { "sort": "period_desc", "limit": 20, - "contract": "15/24 в банковском учете" + "contract": "24/15 в банковском учете" }, "missing_required_filters": [], "selected_recipe": "address_bank_operations_by_contract_v1", @@ -8128,8 +8128,8 @@ "account_scope_mode": "preferred", "account_scope_fallback_applied": false, "anchor_type": "contract", - "anchor_value_raw": "15/24 в банковском учете", - "anchor_value_resolved": "15/24 в банковском учете", + "anchor_value_raw": "24/15 в банковском учете", + "anchor_value_resolved": "24/15 в банковском учете", "resolver_confidence": "medium", "ambiguity_count": 0, "match_failure_stage": "materialized_but_not_anchor_matched", @@ -8172,10 +8172,10 @@ "llm_decomposition_attempted": true, "llm_provider_used": "local", "llm_decomposition_trace_id": "FRIy2IFM8jBw6I", - "llm_decomposition_effective_message": "операции по договору 15/24 в банковском учете", + "llm_decomposition_effective_message": "операции по договору 24/15 в банковском учете", "llm_decomposition_reason": "normalized_fragment_applied", "fallback_rule_hit": null, - "sanitized_user_message": "bank ops by contract 15/24", + "sanitized_user_message": "bank ops by contract 24/15", "tool_gate_decision": "run_address_lane", "tool_gate_reason": "address_mode_classifier_detected", "answer_structure_v11": null, @@ -8185,7 +8185,7 @@ "trace_id": "FRIy2IFM8jBw6I", "prompt_version": "normalizer_v2_0_2", "applied": true, - "effective_message": "операции по договору 15/24 в банковском учете" + "effective_message": "операции по договору 24/15 в банковском учете" } }, "error_code": null, @@ -8194,7 +8194,7 @@ { "index": 55, "id": "S055", - "question": "ёпт, покажи банк операции по дог 15/24", + "question": "ёпт, покажи банк операции по дог 24/15", "session": null, "session_id": "asst-2026-04-02_Address_Slang_Live_Stress_2026-04-02_12-28-31-s055", "status_code": 200, @@ -8270,7 +8270,7 @@ "extracted_filters": { "sort": "period_desc", "limit": 20, - "contract": "15/24" + "contract": "24/15" }, "missing_required_filters": [], "selected_recipe": "address_bank_operations_by_contract_v1", @@ -8278,8 +8278,8 @@ "account_scope_mode": "preferred", "account_scope_fallback_applied": false, "anchor_type": "contract", - "anchor_value_raw": "15/24", - "anchor_value_resolved": "15/24", + "anchor_value_raw": "24/15", + "anchor_value_resolved": "24/15", "resolver_confidence": "medium", "ambiguity_count": 0, "match_failure_stage": "none", @@ -8322,10 +8322,10 @@ "llm_decomposition_attempted": true, "llm_provider_used": "local", "llm_decomposition_trace_id": "zALW7mpgiOWIBO", - "llm_decomposition_effective_message": "покажи банковские операции по договору 15/24", + "llm_decomposition_effective_message": "покажи банковские операции по договору 24/15", "llm_decomposition_reason": "normalized_fragment_applied", "fallback_rule_hit": null, - "sanitized_user_message": "покажи банк операции по договор 15/24", + "sanitized_user_message": "покажи банк операции по договор 24/15", "tool_gate_decision": "run_address_lane", "tool_gate_reason": "address_mode_classifier_detected", "answer_structure_v11": null, @@ -8335,7 +8335,7 @@ "trace_id": "zALW7mpgiOWIBO", "prompt_version": "normalizer_v2_0_2", "applied": true, - "effective_message": "покажи банковские операции по договору 15/24" + "effective_message": "покажи банковские операции по договору 24/15" } }, "error_code": null, @@ -8344,7 +8344,7 @@ { "index": 56, "id": "S056", - "question": "по контракту 15/24 платежки", + "question": "по контракту 24/15 платежки", "session": null, "session_id": "asst-2026-04-02_Address_Slang_Live_Stress_2026-04-02_12-28-31-s056", "status_code": 200, @@ -8420,7 +8420,7 @@ "extracted_filters": { "sort": "period_desc", "limit": 20, - "contract": "15/24" + "contract": "24/15" }, "missing_required_filters": [], "selected_recipe": "address_bank_operations_by_contract_v1", @@ -8428,8 +8428,8 @@ "account_scope_mode": "preferred", "account_scope_fallback_applied": false, "anchor_type": "contract", - "anchor_value_raw": "15/24", - "anchor_value_resolved": "15/24", + "anchor_value_raw": "24/15", + "anchor_value_resolved": "24/15", "resolver_confidence": "medium", "ambiguity_count": 0, "match_failure_stage": "none", @@ -8472,10 +8472,10 @@ "llm_decomposition_attempted": true, "llm_provider_used": "local", "llm_decomposition_trace_id": "HxchvlO0XXSpQ3", - "llm_decomposition_effective_message": "показать платежи по контракту 15/24", + "llm_decomposition_effective_message": "показать платежи по контракту 24/15", "llm_decomposition_reason": "normalized_fragment_applied", "fallback_rule_hit": null, - "sanitized_user_message": "по контракту 15/24 платежки", + "sanitized_user_message": "по контракту 24/15 платежки", "tool_gate_decision": "run_address_lane", "tool_gate_reason": "address_mode_classifier_detected", "answer_structure_v11": null, @@ -8485,7 +8485,7 @@ "trace_id": "HxchvlO0XXSpQ3", "prompt_version": "normalizer_v2_0_2", "applied": true, - "effective_message": "показать платежи по контракту 15/24" + "effective_message": "показать платежи по контракту 24/15" } }, "error_code": null, @@ -13296,7 +13296,7 @@ { "index": 89, "id": "X029", - "question": "доки по договору 15/24 за 2020", + "question": "доки по договору 24/15 за 2020", "session": null, "session_id": "asst-2026-04-02_Address_Slang_Live_Stress_2026-04-02_12-28-31-x029", "status_code": 200, @@ -13371,7 +13371,7 @@ "extracted_filters": { "sort": "period_desc", "limit": 20, - "contract": "15/24", + "contract": "24/15", "period_from": "2020-01-01", "period_to": "2020-12-31" }, @@ -13381,8 +13381,8 @@ "account_scope_mode": "preferred", "account_scope_fallback_applied": true, "anchor_type": "contract", - "anchor_value_raw": "15/24", - "anchor_value_resolved": "15/24", + "anchor_value_raw": "24/15", + "anchor_value_resolved": "24/15", "resolver_confidence": "medium", "ambiguity_count": 0, "match_failure_stage": "materialized_but_not_anchor_matched", @@ -13425,10 +13425,10 @@ "llm_decomposition_attempted": true, "llm_provider_used": "local", "llm_decomposition_trace_id": "vtj10eK87oPheh", - "llm_decomposition_effective_message": "Документы по договору 15/24 за 2020 год.", + "llm_decomposition_effective_message": "Документы по договору 24/15 за 2020 год.", "llm_decomposition_reason": "normalized_fragment_applied", "fallback_rule_hit": null, - "sanitized_user_message": "доки по договору 15/24 за 2020", + "sanitized_user_message": "доки по договору 24/15 за 2020", "tool_gate_decision": "run_address_lane", "tool_gate_reason": "address_mode_classifier_detected", "answer_structure_v11": null, @@ -13438,7 +13438,7 @@ "trace_id": "vtj10eK87oPheh", "prompt_version": "normalizer_v2_0_2", "applied": true, - "effective_message": "Документы по договору 15/24 за 2020 год." + "effective_message": "Документы по договору 24/15 за 2020 год." } }, "error_code": null, @@ -13447,7 +13447,7 @@ { "index": 90, "id": "X030", - "question": "покажи документы контракт 15/24", + "question": "покажи документы контракт 24/15", "session": null, "session_id": "asst-2026-04-02_Address_Slang_Live_Stress_2026-04-02_12-28-31-x030", "status_code": 200, @@ -13524,7 +13524,7 @@ "extracted_filters": { "sort": "period_desc", "limit": 20, - "contract": "15/24" + "contract": "24/15" }, "missing_required_filters": [], "selected_recipe": "address_documents_by_contract_v1", @@ -13532,8 +13532,8 @@ "account_scope_mode": "preferred", "account_scope_fallback_applied": false, "anchor_type": "contract", - "anchor_value_raw": "15/24", - "anchor_value_resolved": "15/24", + "anchor_value_raw": "24/15", + "anchor_value_resolved": "24/15", "resolver_confidence": "medium", "ambiguity_count": 0, "match_failure_stage": "none", @@ -13576,10 +13576,10 @@ "llm_decomposition_attempted": true, "llm_provider_used": "local", "llm_decomposition_trace_id": "_7KzreRZ-DsLAx", - "llm_decomposition_effective_message": "Показать документы по контракту 15/24.", + "llm_decomposition_effective_message": "Показать документы по контракту 24/15.", "llm_decomposition_reason": "normalized_fragment_applied", "fallback_rule_hit": null, - "sanitized_user_message": "покажи документы контракт 15/24", + "sanitized_user_message": "покажи документы контракт 24/15", "tool_gate_decision": "run_address_lane", "tool_gate_reason": "address_mode_classifier_detected", "answer_structure_v11": null, @@ -13589,7 +13589,7 @@ "trace_id": "_7KzreRZ-DsLAx", "prompt_version": "normalizer_v2_0_2", "applied": true, - "effective_message": "Показать документы по контракту 15/24." + "effective_message": "Показать документы по контракту 24/15." } }, "error_code": null, @@ -13598,7 +13598,7 @@ { "index": 91, "id": "X031", - "question": "docs by contract 15/24 2020", + "question": "docs by contract 24/15 2020", "session": null, "session_id": "asst-2026-04-02_Address_Slang_Live_Stress_2026-04-02_12-28-31-x031", "status_code": 200, @@ -13674,7 +13674,7 @@ "extracted_filters": { "sort": "period_desc", "limit": 20, - "contract": "15/24 2020", + "contract": "24/15 2020", "period_from": "2020-01-01", "period_to": "2020-12-31" }, @@ -13684,8 +13684,8 @@ "account_scope_mode": "preferred", "account_scope_fallback_applied": false, "anchor_type": "contract", - "anchor_value_raw": "15/24 2020", - "anchor_value_resolved": "15/24 2020", + "anchor_value_raw": "24/15 2020", + "anchor_value_resolved": "24/15 2020", "resolver_confidence": "medium", "ambiguity_count": 0, "match_failure_stage": "none", @@ -13728,10 +13728,10 @@ "llm_decomposition_attempted": true, "llm_provider_used": "local", "llm_decomposition_trace_id": "PgN5in7ek7JCbQ", - "llm_decomposition_effective_message": "docs by contract 15/24 2020", + "llm_decomposition_effective_message": "docs by contract 24/15 2020", "llm_decomposition_reason": "normalized_fragment_same", "fallback_rule_hit": null, - "sanitized_user_message": "документы by contract 15/24 2020", + "sanitized_user_message": "документы by contract 24/15 2020", "tool_gate_decision": "run_address_lane", "tool_gate_reason": "address_mode_classifier_detected", "answer_structure_v11": null, @@ -13741,7 +13741,7 @@ "trace_id": "PgN5in7ek7JCbQ", "prompt_version": "normalizer_v2_0_2", "applied": false, - "effective_message": "docs by contract 15/24 2020" + "effective_message": "docs by contract 24/15 2020" } }, "error_code": null, @@ -13750,7 +13750,7 @@ { "index": 92, "id": "X032", - "question": "по дог 15/24 какие документы", + "question": "по дог 24/15 какие документы", "session": null, "session_id": "asst-2026-04-02_Address_Slang_Live_Stress_2026-04-02_12-28-31-x032", "status_code": 200, @@ -13826,7 +13826,7 @@ "extracted_filters": { "sort": "period_desc", "limit": 20, - "contract": "15/24" + "contract": "24/15" }, "missing_required_filters": [], "selected_recipe": "address_documents_by_contract_v1", @@ -13834,8 +13834,8 @@ "account_scope_mode": "preferred", "account_scope_fallback_applied": false, "anchor_type": "contract", - "anchor_value_raw": "15/24", - "anchor_value_resolved": "15/24", + "anchor_value_raw": "24/15", + "anchor_value_resolved": "24/15", "resolver_confidence": "medium", "ambiguity_count": 0, "match_failure_stage": "none", @@ -13878,10 +13878,10 @@ "llm_decomposition_attempted": true, "llm_provider_used": "local", "llm_decomposition_trace_id": "GrTbBCycPY6Wb0", - "llm_decomposition_effective_message": "Документы по договору 15/24", + "llm_decomposition_effective_message": "Документы по договору 24/15", "llm_decomposition_reason": "normalized_fragment_applied", "fallback_rule_hit": null, - "sanitized_user_message": "по договор 15/24 какие документы", + "sanitized_user_message": "по договор 24/15 какие документы", "tool_gate_decision": "run_address_lane", "tool_gate_reason": "address_mode_classifier_detected", "answer_structure_v11": null, @@ -13891,7 +13891,7 @@ "trace_id": "GrTbBCycPY6Wb0", "prompt_version": "normalizer_v2_0_2", "applied": true, - "effective_message": "Документы по договору 15/24" + "effective_message": "Документы по договору 24/15" } }, "error_code": null, @@ -13900,7 +13900,7 @@ { "index": 93, "id": "X033", - "question": "договор 15/24 выведи доки", + "question": "договор 24/15 выведи доки", "session": null, "session_id": "asst-2026-04-02_Address_Slang_Live_Stress_2026-04-02_12-28-31-x033", "status_code": 200, @@ -13976,7 +13976,7 @@ "extracted_filters": { "sort": "period_desc", "limit": 20, - "contract": "15/24 выведите связанные документы" + "contract": "24/15 выведите связанные документы" }, "missing_required_filters": [], "selected_recipe": "address_documents_by_contract_v1", @@ -13984,8 +13984,8 @@ "account_scope_mode": "preferred", "account_scope_fallback_applied": false, "anchor_type": "contract", - "anchor_value_raw": "15/24 выведите связанные документы", - "anchor_value_resolved": "15/24 выведите связанные документы", + "anchor_value_raw": "24/15 выведите связанные документы", + "anchor_value_resolved": "24/15 выведите связанные документы", "resolver_confidence": "medium", "ambiguity_count": 0, "match_failure_stage": "materialized_but_not_anchor_matched", @@ -14028,10 +14028,10 @@ "llm_decomposition_attempted": true, "llm_provider_used": "local", "llm_decomposition_trace_id": "z2cI2si1gyFUyp", - "llm_decomposition_effective_message": "Для договора 15/24 выведите связанные документы.", + "llm_decomposition_effective_message": "Для договора 24/15 выведите связанные документы.", "llm_decomposition_reason": "normalized_fragment_applied", "fallback_rule_hit": null, - "sanitized_user_message": "договор 15/24 выведи доки", + "sanitized_user_message": "договор 24/15 выведи доки", "tool_gate_decision": "run_address_lane", "tool_gate_reason": "address_mode_classifier_detected", "answer_structure_v11": null, @@ -14041,7 +14041,7 @@ "trace_id": "z2cI2si1gyFUyp", "prompt_version": "normalizer_v2_0_2", "applied": true, - "effective_message": "Для договора 15/24 выведите связанные документы." + "effective_message": "Для договора 24/15 выведите связанные документы." } }, "error_code": null, @@ -14050,7 +14050,7 @@ { "index": 94, "id": "X034", - "question": "нах покажи документы по 15/24", + "question": "нах покажи документы по 24/15", "session": null, "session_id": "asst-2026-04-02_Address_Slang_Live_Stress_2026-04-02_12-28-31-x034", "status_code": 200, @@ -14127,7 +14127,7 @@ "extracted_filters": { "sort": "period_desc", "limit": 20, - "contract": "15/24" + "contract": "24/15" }, "missing_required_filters": [], "selected_recipe": "address_documents_by_contract_v1", @@ -14135,8 +14135,8 @@ "account_scope_mode": "preferred", "account_scope_fallback_applied": false, "anchor_type": "contract", - "anchor_value_raw": "15/24", - "anchor_value_resolved": "15/24", + "anchor_value_raw": "24/15", + "anchor_value_resolved": "24/15", "resolver_confidence": "medium", "ambiguity_count": 0, "match_failure_stage": "none", @@ -14179,10 +14179,10 @@ "llm_decomposition_attempted": true, "llm_provider_used": "local", "llm_decomposition_trace_id": "VLdNWr_NSqC0tv", - "llm_decomposition_effective_message": "нах покажи документы по 15/24", + "llm_decomposition_effective_message": "нах покажи документы по 24/15", "llm_decomposition_reason": "normalized_fragment_rejected_intent_conflict", "fallback_rule_hit": null, - "sanitized_user_message": "покажи документы по 15/24", + "sanitized_user_message": "покажи документы по 24/15", "tool_gate_decision": "run_address_lane", "tool_gate_reason": "address_mode_classifier_detected", "answer_structure_v11": null, @@ -14192,7 +14192,7 @@ "trace_id": "VLdNWr_NSqC0tv", "prompt_version": "normalizer_v2_0_2", "applied": false, - "effective_message": "нах покажи документы по 15/24" + "effective_message": "нах покажи документы по 24/15" } }, "error_code": null, @@ -14201,7 +14201,7 @@ { "index": 95, "id": "X035", - "question": "банк операции по договору 15/24", + "question": "банк операции по договору 24/15", "session": null, "session_id": "asst-2026-04-02_Address_Slang_Live_Stress_2026-04-02_12-28-31-x035", "status_code": 200, @@ -14276,7 +14276,7 @@ "extracted_filters": { "sort": "period_desc", "limit": 20, - "contract": "15/24" + "contract": "24/15" }, "missing_required_filters": [], "selected_recipe": "address_bank_operations_by_contract_v1", @@ -14284,8 +14284,8 @@ "account_scope_mode": "preferred", "account_scope_fallback_applied": false, "anchor_type": "contract", - "anchor_value_raw": "15/24", - "anchor_value_resolved": "15/24", + "anchor_value_raw": "24/15", + "anchor_value_resolved": "24/15", "resolver_confidence": "medium", "ambiguity_count": 0, "match_failure_stage": "none", @@ -14328,10 +14328,10 @@ "llm_decomposition_attempted": true, "llm_provider_used": "local", "llm_decomposition_trace_id": "7h3Z6b72QQQsfy", - "llm_decomposition_effective_message": "операции банка по договору 15/24", + "llm_decomposition_effective_message": "операции банка по договору 24/15", "llm_decomposition_reason": "normalized_fragment_applied", "fallback_rule_hit": null, - "sanitized_user_message": "банк операции по договору 15/24", + "sanitized_user_message": "банк операции по договору 24/15", "tool_gate_decision": "run_address_lane", "tool_gate_reason": "address_mode_classifier_detected", "answer_structure_v11": null, @@ -14341,7 +14341,7 @@ "trace_id": "7h3Z6b72QQQsfy", "prompt_version": "normalizer_v2_0_2", "applied": true, - "effective_message": "операции банка по договору 15/24" + "effective_message": "операции банка по договору 24/15" } }, "error_code": null, @@ -14350,7 +14350,7 @@ { "index": 96, "id": "X036", - "question": "платежки по дог 15/24", + "question": "платежки по дог 24/15", "session": null, "session_id": "asst-2026-04-02_Address_Slang_Live_Stress_2026-04-02_12-28-31-x036", "status_code": 200, @@ -14425,7 +14425,7 @@ "extracted_filters": { "sort": "period_desc", "limit": 20, - "contract": "15/24" + "contract": "24/15" }, "missing_required_filters": [], "selected_recipe": "address_bank_operations_by_contract_v1", @@ -14433,8 +14433,8 @@ "account_scope_mode": "preferred", "account_scope_fallback_applied": false, "anchor_type": "contract", - "anchor_value_raw": "15/24", - "anchor_value_resolved": "15/24", + "anchor_value_raw": "24/15", + "anchor_value_resolved": "24/15", "resolver_confidence": "medium", "ambiguity_count": 0, "match_failure_stage": "none", @@ -14477,10 +14477,10 @@ "llm_decomposition_attempted": true, "llm_provider_used": "local", "llm_decomposition_trace_id": "-l92ZdCcxQuDZH", - "llm_decomposition_effective_message": "платежи по договору 15/24", + "llm_decomposition_effective_message": "платежи по договору 24/15", "llm_decomposition_reason": "normalized_fragment_applied", "fallback_rule_hit": null, - "sanitized_user_message": "платежки по договор 15/24", + "sanitized_user_message": "платежки по договор 24/15", "tool_gate_decision": "run_address_lane", "tool_gate_reason": "address_mode_classifier_detected", "answer_structure_v11": null, @@ -14490,7 +14490,7 @@ "trace_id": "-l92ZdCcxQuDZH", "prompt_version": "normalizer_v2_0_2", "applied": true, - "effective_message": "платежи по договору 15/24" + "effective_message": "платежи по договору 24/15" } }, "error_code": null, @@ -14499,7 +14499,7 @@ { "index": 97, "id": "X037", - "question": "выписка по контракту 15/24", + "question": "выписка по контракту 24/15", "session": null, "session_id": "asst-2026-04-02_Address_Slang_Live_Stress_2026-04-02_12-28-31-x037", "status_code": 200, @@ -14574,7 +14574,7 @@ "extracted_filters": { "sort": "period_desc", "limit": 20, - "contract": "15/24" + "contract": "24/15" }, "missing_required_filters": [], "selected_recipe": "address_bank_operations_by_contract_v1", @@ -14582,8 +14582,8 @@ "account_scope_mode": "preferred", "account_scope_fallback_applied": false, "anchor_type": "contract", - "anchor_value_raw": "15/24", - "anchor_value_resolved": "15/24", + "anchor_value_raw": "24/15", + "anchor_value_resolved": "24/15", "resolver_confidence": "medium", "ambiguity_count": 0, "match_failure_stage": "none", @@ -14626,10 +14626,10 @@ "llm_decomposition_attempted": true, "llm_provider_used": "local", "llm_decomposition_trace_id": "hJ7uSZhkAOlnHX", - "llm_decomposition_effective_message": "выписка по контракту 15/24", + "llm_decomposition_effective_message": "выписка по контракту 24/15", "llm_decomposition_reason": "normalized_fragment_same", "fallback_rule_hit": null, - "sanitized_user_message": "выписка по контракту 15/24", + "sanitized_user_message": "выписка по контракту 24/15", "tool_gate_decision": "run_address_lane", "tool_gate_reason": "address_mode_classifier_detected", "answer_structure_v11": null, @@ -14639,7 +14639,7 @@ "trace_id": "hJ7uSZhkAOlnHX", "prompt_version": "normalizer_v2_0_2", "applied": false, - "effective_message": "выписка по контракту 15/24" + "effective_message": "выписка по контракту 24/15" } }, "error_code": null, @@ -14648,7 +14648,7 @@ { "index": 98, "id": "X038", - "question": "bank ops by contract 15/24", + "question": "bank ops by contract 24/15", "session": null, "session_id": "asst-2026-04-02_Address_Slang_Live_Stress_2026-04-02_12-28-31-x038", "status_code": 200, @@ -14723,7 +14723,7 @@ "extracted_filters": { "sort": "period_desc", "limit": 20, - "contract": "15/24 в банковском учете" + "contract": "24/15 в банковском учете" }, "missing_required_filters": [], "selected_recipe": "address_bank_operations_by_contract_v1", @@ -14731,8 +14731,8 @@ "account_scope_mode": "preferred", "account_scope_fallback_applied": false, "anchor_type": "contract", - "anchor_value_raw": "15/24 в банковском учете", - "anchor_value_resolved": "15/24 в банковском учете", + "anchor_value_raw": "24/15 в банковском учете", + "anchor_value_resolved": "24/15 в банковском учете", "resolver_confidence": "medium", "ambiguity_count": 0, "match_failure_stage": "materialized_but_not_anchor_matched", @@ -14775,10 +14775,10 @@ "llm_decomposition_attempted": true, "llm_provider_used": "local", "llm_decomposition_trace_id": "6vJfN38mxWRHfF", - "llm_decomposition_effective_message": "операции по договору 15/24 в банковском учете", + "llm_decomposition_effective_message": "операции по договору 24/15 в банковском учете", "llm_decomposition_reason": "normalized_fragment_applied", "fallback_rule_hit": null, - "sanitized_user_message": "bank ops by contract 15/24", + "sanitized_user_message": "bank ops by contract 24/15", "tool_gate_decision": "run_address_lane", "tool_gate_reason": "address_mode_classifier_detected", "answer_structure_v11": null, @@ -14788,7 +14788,7 @@ "trace_id": "6vJfN38mxWRHfF", "prompt_version": "normalizer_v2_0_2", "applied": true, - "effective_message": "операции по договору 15/24 в банковском учете" + "effective_message": "операции по договору 24/15 в банковском учете" } }, "error_code": null, @@ -14797,7 +14797,7 @@ { "index": 99, "id": "X039", - "question": "покажи банк опер по дог 15/24 пж", + "question": "покажи банк опер по дог 24/15 пж", "session": null, "session_id": "asst-2026-04-02_Address_Slang_Live_Stress_2026-04-02_12-28-31-x039", "status_code": 200, @@ -14874,7 +14874,7 @@ "extracted_filters": { "sort": "period_desc", "limit": 20, - "contract": "15/24" + "contract": "24/15" }, "missing_required_filters": [], "selected_recipe": "address_bank_operations_by_contract_v1", @@ -14882,8 +14882,8 @@ "account_scope_mode": "preferred", "account_scope_fallback_applied": false, "anchor_type": "contract", - "anchor_value_raw": "15/24", - "anchor_value_resolved": "15/24", + "anchor_value_raw": "24/15", + "anchor_value_resolved": "24/15", "resolver_confidence": "medium", "ambiguity_count": 0, "match_failure_stage": "none", @@ -14915,10 +14915,10 @@ "llm_decomposition_attempted": true, "llm_provider_used": "local", "llm_decomposition_trace_id": "sRvH_EVTQl42AN", - "llm_decomposition_effective_message": "Показать банковские операции по договору 15/24.", + "llm_decomposition_effective_message": "Показать банковские операции по договору 24/15.", "llm_decomposition_reason": "normalized_fragment_applied", "fallback_rule_hit": null, - "sanitized_user_message": "покажи банк операции по договор 15/24", + "sanitized_user_message": "покажи банк операции по договор 24/15", "tool_gate_decision": "run_address_lane", "tool_gate_reason": "address_mode_classifier_detected", "answer_structure_v11": null, @@ -14928,7 +14928,7 @@ "trace_id": "sRvH_EVTQl42AN", "prompt_version": "normalizer_v2_0_2", "applied": true, - "effective_message": "Показать банковские операции по договору 15/24." + "effective_message": "Показать банковские операции по договору 24/15." } }, "error_code": null, @@ -14937,7 +14937,7 @@ { "index": 100, "id": "X040", - "question": "епт транзакции договор 15/24", + "question": "епт транзакции договор 24/15", "session": null, "session_id": "asst-2026-04-02_Address_Slang_Live_Stress_2026-04-02_12-28-31-x040", "status_code": 200, @@ -15012,7 +15012,7 @@ "extracted_filters": { "sort": "period_desc", "limit": 20, - "contract": "15/24" + "contract": "24/15" }, "missing_required_filters": [], "selected_recipe": "address_bank_operations_by_contract_v1", @@ -15020,8 +15020,8 @@ "account_scope_mode": "preferred", "account_scope_fallback_applied": false, "anchor_type": "contract", - "anchor_value_raw": "15/24", - "anchor_value_resolved": "15/24", + "anchor_value_raw": "24/15", + "anchor_value_resolved": "24/15", "resolver_confidence": "medium", "ambiguity_count": 0, "match_failure_stage": "none", @@ -15064,10 +15064,10 @@ "llm_decomposition_attempted": true, "llm_provider_used": "local", "llm_decomposition_trace_id": "9MKhM-79obLLd6", - "llm_decomposition_effective_message": "Проверить или разобрать транзакции по договору 15/24.", + "llm_decomposition_effective_message": "Проверить или разобрать транзакции по договору 24/15.", "llm_decomposition_reason": "normalized_fragment_applied", "fallback_rule_hit": null, - "sanitized_user_message": "транзакции договор 15/24", + "sanitized_user_message": "транзакции договор 24/15", "tool_gate_decision": "run_address_lane", "tool_gate_reason": "address_mode_classifier_detected", "answer_structure_v11": null, @@ -15077,7 +15077,7 @@ "trace_id": "9MKhM-79obLLd6", "prompt_version": "normalizer_v2_0_2", "applied": true, - "effective_message": "Проверить или разобрать транзакции по договору 15/24." + "effective_message": "Проверить или разобрать транзакции по договору 24/15." } }, "error_code": null, diff --git a/docs/ADDRESS/runs/2026-04-02_Address_Slang_Live_Stress_2026-04-02_12-28-31/response_audit.md b/docs/ADDRESS/runs/2026-04-02_Address_Slang_Live_Stress_2026-04-02_12-28-31/response_audit.md index 72ce719..78f2874 100644 --- a/docs/ADDRESS/runs/2026-04-02_Address_Slang_Live_Stress_2026-04-02_12-28-31/response_audit.md +++ b/docs/ADDRESS/runs/2026-04-02_Address_Slang_Live_Stress_2026-04-02_12-28-31/response_audit.md @@ -44,20 +44,20 @@ | S040 | False | blocked_recipe_visibility_gap | partial_coverage | documents_forming_balance | recipe_visibility_gap | бля, какие доки формируют остаток 60.01 на 2020-05-31 | Текущий live recipe не дает нужную видимость данных для этого сценария. | | S041 | True | partial_non_blocking | partial_coverage | documents_forming_balance | empty_match | по счету 62.01 раскрой остаток документами на 2020-12-31 | В live-данных по текущему фильтру записи не найдены. | | S042 | True | ok_or_factual | factual | documents_forming_balance | None | из чего остаток по счету 51 на 2020-06-30 | Собран drilldown документов, формирующих остаток по счету на указанную дату. | -| S043 | False | likely_blocked_route | partial_coverage | list_documents_by_contract | empty_match | покажи документы по договору 15/24 за 2020 | В live-данных по текущему фильтру записи не найдены. | -| S044 | True | ok_or_factual | factual | list_documents_by_contract | None | доки по дог. 15/24 за 2020 | Период сохранен. Глубина live-выборки автоматически расширена до 1000 строк. | -| S045 | True | ok_or_factual | factual | list_documents_by_contract | None | какие документы по контракту 15/24 | Документный фильтр в live дал пустой набор; показываю связанные банковские операции по договору. | -| S046 | False | likely_blocked_route | partial_coverage | list_documents_by_contract | empty_match | docs by contract 15/24 year 2020 | В live-данных по текущему фильтру записи не найдены. | -| S047 | True | ok_or_factual | factual | list_documents_by_contract | None | бля, покажи по договору 15/24 доки | Документный фильтр в live дал пустой набор; показываю связанные банковские операции по договору. | -| S048 | True | ok_or_factual | factual | list_documents_by_contract | None | договор 15/24 документы | Документный фильтр в live дал пустой набор; показываю связанные банковские операции по договору. | -| S049 | False | likely_blocked_route | partial_coverage | list_documents_by_contract | empty_match | плс документы договор №15/24 | В live-данных по текущему фильтру записи не найдены. | -| S050 | True | ok_or_factual | factual | list_documents_by_contract | None | покеж документы по 15/24 | Документный фильтр в live дал пустой набор; показываю связанные банковские операции по договору. | -| S051 | True | ok_or_factual | factual | bank_operations_by_contract | None | банковские операции по договору 15/24 | Собран список банковских операций по договору (live address lane). | -| S052 | True | ok_or_factual | factual | bank_operations_by_contract | None | платежи по договору 15/24 | Собран список банковских операций по договору (live address lane). | -| S053 | True | ok_or_factual | factual | bank_operations_by_contract | None | выписка по договору 15/24 | Собран список банковских операций по договору (live address lane). | -| S054 | False | likely_blocked_route | partial_coverage | bank_operations_by_contract | empty_match | bank ops by contract 15/24 | В live-данных по текущему фильтру записи не найдены. | -| S055 | True | ok_or_factual | factual | bank_operations_by_contract | None | ёпт, покажи банк операции по дог 15/24 | Собран список банковских операций по договору (live address lane). | -| S056 | True | ok_or_factual | factual | bank_operations_by_contract | None | по контракту 15/24 платежки | Собран список банковских операций по договору (live address lane). | +| S043 | False | likely_blocked_route | partial_coverage | list_documents_by_contract | empty_match | покажи документы по договору 24/15 за 2020 | В live-данных по текущему фильтру записи не найдены. | +| S044 | True | ok_or_factual | factual | list_documents_by_contract | None | доки по дог. 24/15 за 2020 | Период сохранен. Глубина live-выборки автоматически расширена до 1000 строк. | +| S045 | True | ok_or_factual | factual | list_documents_by_contract | None | какие документы по контракту 24/15 | Документный фильтр в live дал пустой набор; показываю связанные банковские операции по договору. | +| S046 | False | likely_blocked_route | partial_coverage | list_documents_by_contract | empty_match | docs by contract 24/15 year 2020 | В live-данных по текущему фильтру записи не найдены. | +| S047 | True | ok_or_factual | factual | list_documents_by_contract | None | бля, покажи по договору 24/15 доки | Документный фильтр в live дал пустой набор; показываю связанные банковские операции по договору. | +| S048 | True | ok_or_factual | factual | list_documents_by_contract | None | договор 24/15 документы | Документный фильтр в live дал пустой набор; показываю связанные банковские операции по договору. | +| S049 | False | likely_blocked_route | partial_coverage | list_documents_by_contract | empty_match | плс документы договор №24/15 | В live-данных по текущему фильтру записи не найдены. | +| S050 | True | ok_or_factual | factual | list_documents_by_contract | None | покеж документы по 24/15 | Документный фильтр в live дал пустой набор; показываю связанные банковские операции по договору. | +| S051 | True | ok_or_factual | factual | bank_operations_by_contract | None | банковские операции по договору 24/15 | Собран список банковских операций по договору (live address lane). | +| S052 | True | ok_or_factual | factual | bank_operations_by_contract | None | платежи по договору 24/15 | Собран список банковских операций по договору (live address lane). | +| S053 | True | ok_or_factual | factual | bank_operations_by_contract | None | выписка по договору 24/15 | Собран список банковских операций по договору (live address lane). | +| S054 | False | likely_blocked_route | partial_coverage | bank_operations_by_contract | empty_match | bank ops by contract 24/15 | В live-данных по текущему фильтру записи не найдены. | +| S055 | True | ok_or_factual | factual | bank_operations_by_contract | None | ёпт, покажи банк операции по дог 24/15 | Собран список банковских операций по договору (live address lane). | +| S056 | True | ok_or_factual | factual | bank_operations_by_contract | None | по контракту 24/15 платежки | Собран список банковских операций по договору (live address lane). | | S057 | True | ok_or_factual | factual | account_balance_snapshot | None | покажи сальдо по счету 60 за 2020 | Адресный срез по счету собран (по движениям live MCP). | | S058 | True | ok_or_factual | factual | account_balance_snapshot | None | а теперь только май 2020 | Адресный срез по счету собран (по движениям live MCP). | | S059 | True | ok_or_factual | factual | account_balance_snapshot | None | ок, теперь 2020.05 | Адресный срез по счету собран (по движениям live MCP). | @@ -90,17 +90,17 @@ | X026 | True | partial_non_blocking | partial_coverage | documents_forming_balance | empty_match | раскидай остаток 62.01 по докам на 2020-12-31 | В live-данных по текущему фильтру записи не найдены. | | X027 | True | ok_or_factual | factual | documents_forming_balance | None | по счету 51 раскрой остаток документами на 2020-06-30 | Собран drilldown документов, формирующих остаток по счету на указанную дату. | | X028 | False | blocked_recipe_visibility_gap | partial_coverage | documents_forming_balance | recipe_visibility_gap | бля из чего состоит остаток по 60.01 на 2020-05-31 | Текущий live recipe не дает нужную видимость данных для этого сценария. | -| X029 | False | likely_blocked_route | partial_coverage | list_documents_by_contract | empty_match | доки по договору 15/24 за 2020 | В live-данных по текущему фильтру записи не найдены. | -| X030 | True | ok_or_factual | factual | list_documents_by_contract | None | покажи документы контракт 15/24 | Документный фильтр в live дал пустой набор; показываю связанные банковские операции по договору. | -| X031 | True | ok_or_factual | factual | list_documents_by_contract | None | docs by contract 15/24 2020 | Период сохранен. Глубина live-выборки автоматически расширена до 1000 строк. | -| X032 | True | ok_or_factual | factual | list_documents_by_contract | None | по дог 15/24 какие документы | Документный фильтр в live дал пустой набор; показываю связанные банковские операции по договору. | -| X033 | False | likely_blocked_route | partial_coverage | list_documents_by_contract | empty_match | договор 15/24 выведи доки | В live-данных по текущему фильтру записи не найдены. | -| X034 | True | ok_or_factual | factual | list_documents_by_contract | None | нах покажи документы по 15/24 | Документный фильтр в live дал пустой набор; показываю связанные банковские операции по договору. | -| X035 | True | ok_or_factual | factual | bank_operations_by_contract | None | банк операции по договору 15/24 | Собран список банковских операций по договору (live address lane). | -| X036 | True | ok_or_factual | factual | bank_operations_by_contract | None | платежки по дог 15/24 | Собран список банковских операций по договору (live address lane). | -| X037 | True | ok_or_factual | factual | bank_operations_by_contract | None | выписка по контракту 15/24 | Собран список банковских операций по договору (live address lane). | -| X038 | False | likely_blocked_route | partial_coverage | bank_operations_by_contract | empty_match | bank ops by contract 15/24 | В live-данных по текущему фильтру записи не найдены. | -| X039 | False | blocked_execution_error | partial_coverage | bank_operations_by_contract | execution_error | покажи банк опер по дог 15/24 пж | Не удалось выполнить адресный live-запрос в V1. | -| X040 | True | ok_or_factual | factual | bank_operations_by_contract | None | епт транзакции договор 15/24 | Собран список банковских операций по договору (live address lane). | +| X029 | False | likely_blocked_route | partial_coverage | list_documents_by_contract | empty_match | доки по договору 24/15 за 2020 | В live-данных по текущему фильтру записи не найдены. | +| X030 | True | ok_or_factual | factual | list_documents_by_contract | None | покажи документы контракт 24/15 | Документный фильтр в live дал пустой набор; показываю связанные банковские операции по договору. | +| X031 | True | ok_or_factual | factual | list_documents_by_contract | None | docs by contract 24/15 2020 | Период сохранен. Глубина live-выборки автоматически расширена до 1000 строк. | +| X032 | True | ok_or_factual | factual | list_documents_by_contract | None | по дог 24/15 какие документы | Документный фильтр в live дал пустой набор; показываю связанные банковские операции по договору. | +| X033 | False | likely_blocked_route | partial_coverage | list_documents_by_contract | empty_match | договор 24/15 выведи доки | В live-данных по текущему фильтру записи не найдены. | +| X034 | True | ok_or_factual | factual | list_documents_by_contract | None | нах покажи документы по 24/15 | Документный фильтр в live дал пустой набор; показываю связанные банковские операции по договору. | +| X035 | True | ok_or_factual | factual | bank_operations_by_contract | None | банк операции по договору 24/15 | Собран список банковских операций по договору (live address lane). | +| X036 | True | ok_or_factual | factual | bank_operations_by_contract | None | платежки по дог 24/15 | Собран список банковских операций по договору (live address lane). | +| X037 | True | ok_or_factual | factual | bank_operations_by_contract | None | выписка по контракту 24/15 | Собран список банковских операций по договору (live address lane). | +| X038 | False | likely_blocked_route | partial_coverage | bank_operations_by_contract | empty_match | bank ops by contract 24/15 | В live-данных по текущему фильтру записи не найдены. | +| X039 | False | blocked_execution_error | partial_coverage | bank_operations_by_contract | execution_error | покажи банк опер по дог 24/15 пж | Не удалось выполнить адресный live-запрос в V1. | +| X040 | True | ok_or_factual | factual | bank_operations_by_contract | None | епт транзакции договор 24/15 | Собран список банковских операций по договору (live address lane). | | X041 | True | ok_or_factual | factual | account_balance_snapshot | None | покажи сальдо по счету 60 за 2020 | Адресный срез по счету собран (по движениям live MCP). | | X042 | True | ok_or_factual | factual | account_balance_snapshot | None | а теперь только май 2020 | Адресный срез по счету собран (по движениям live MCP). | diff --git a/docs/ADDRESS/runs/2026-04-02_Address_Slang_Live_Stress_2026-04-02_12-40-54/failures_only.json b/docs/ADDRESS/runs/2026-04-02_Address_Slang_Live_Stress_2026-04-02_12-40-54/failures_only.json index f824f14..c20da65 100644 --- a/docs/ADDRESS/runs/2026-04-02_Address_Slang_Live_Stress_2026-04-02_12-40-54/failures_only.json +++ b/docs/ADDRESS/runs/2026-04-02_Address_Slang_Live_Stress_2026-04-02_12-40-54/failures_only.json @@ -308,7 +308,7 @@ { "index": 43, "id": "S043", - "question": "покажи документы по договору 15/24 за 2020", + "question": "покажи документы по договору 24/15 за 2020", "session": null, "session_id": "asst-2026-04-02_Address_Slang_Live_Stress_2026-04-02_12-40-54-s043", "status_code": 200, @@ -384,7 +384,7 @@ "extracted_filters": { "sort": "period_desc", "limit": 20, - "contract": "15/24", + "contract": "24/15", "period_from": "2020-01-01", "period_to": "2020-12-31" }, @@ -394,8 +394,8 @@ "account_scope_mode": "preferred", "account_scope_fallback_applied": true, "anchor_type": "contract", - "anchor_value_raw": "15/24", - "anchor_value_resolved": "15/24", + "anchor_value_raw": "24/15", + "anchor_value_resolved": "24/15", "resolver_confidence": "medium", "ambiguity_count": 0, "match_failure_stage": "materialized_but_not_anchor_matched", @@ -438,10 +438,10 @@ "llm_decomposition_attempted": true, "llm_provider_used": "local", "llm_decomposition_trace_id": "o9lF35fLk7mxPL", - "llm_decomposition_effective_message": "Показать документы по договору 15/24 за период 2020 года.", + "llm_decomposition_effective_message": "Показать документы по договору 24/15 за период 2020 года.", "llm_decomposition_reason": "normalized_fragment_applied", "fallback_rule_hit": null, - "sanitized_user_message": "покажи документы по договору 15/24 за 2020", + "sanitized_user_message": "покажи документы по договору 24/15 за 2020", "tool_gate_decision": "run_address_lane", "tool_gate_reason": "address_mode_classifier_detected", "answer_structure_v11": null, @@ -451,7 +451,7 @@ "trace_id": "o9lF35fLk7mxPL", "prompt_version": "normalizer_v2_0_2", "applied": true, - "effective_message": "Показать документы по договору 15/24 за период 2020 года." + "effective_message": "Показать документы по договору 24/15 за период 2020 года." } }, "error_code": null, @@ -460,7 +460,7 @@ { "index": 46, "id": "S046", - "question": "docs by contract 15/24 year 2020", + "question": "docs by contract 24/15 year 2020", "session": null, "session_id": "asst-2026-04-02_Address_Slang_Live_Stress_2026-04-02_12-40-54-s046", "status_code": 200, @@ -535,7 +535,7 @@ "extracted_filters": { "sort": "period_desc", "limit": 20, - "contract": "15/24 year 2020", + "contract": "24/15 year 2020", "period_from": "2020-01-01", "period_to": "2020-12-31" }, @@ -545,8 +545,8 @@ "account_scope_mode": "preferred", "account_scope_fallback_applied": true, "anchor_type": "contract", - "anchor_value_raw": "15/24 year 2020", - "anchor_value_resolved": "15/24 year 2020", + "anchor_value_raw": "24/15 year 2020", + "anchor_value_resolved": "24/15 year 2020", "resolver_confidence": "medium", "ambiguity_count": 0, "match_failure_stage": "materialized_but_not_anchor_matched", @@ -589,7 +589,7 @@ "llm_decomposition_attempted": true, "llm_provider_used": "local", "llm_decomposition_trace_id": "bdfZi1D7CmwQom", - "llm_decomposition_effective_message": "docs by contract 15/24 year 2020", + "llm_decomposition_effective_message": "docs by contract 24/15 year 2020", "llm_decomposition_reason": "normalized_fragment_same", "fallback_rule_hit": null, "sanitized_user_message": "документы by contract 15/2024 год 2020", @@ -602,7 +602,7 @@ "trace_id": "bdfZi1D7CmwQom", "prompt_version": "normalizer_v2_0_2", "applied": false, - "effective_message": "docs by contract 15/24 year 2020" + "effective_message": "docs by contract 24/15 year 2020" } }, "error_code": null, @@ -764,7 +764,7 @@ { "index": 91, "id": "X031", - "question": "docs by contract 15/24 2020", + "question": "docs by contract 24/15 2020", "session": null, "session_id": "asst-2026-04-02_Address_Slang_Live_Stress_2026-04-02_12-40-54-x031", "status_code": 200, @@ -839,7 +839,7 @@ "extracted_filters": { "sort": "period_desc", "limit": 20, - "contract": "15/24 2020", + "contract": "24/15 2020", "period_from": "2020-01-01", "period_to": "2020-12-31" }, @@ -849,8 +849,8 @@ "account_scope_mode": "preferred", "account_scope_fallback_applied": true, "anchor_type": "contract", - "anchor_value_raw": "15/24 2020", - "anchor_value_resolved": "15/24 2020", + "anchor_value_raw": "24/15 2020", + "anchor_value_resolved": "24/15 2020", "resolver_confidence": "medium", "ambiguity_count": 0, "match_failure_stage": "materialized_but_not_anchor_matched", @@ -893,10 +893,10 @@ "llm_decomposition_attempted": true, "llm_provider_used": "local", "llm_decomposition_trace_id": "7cYAD2ehihqh2t", - "llm_decomposition_effective_message": "docs by contract 15/24 2020", + "llm_decomposition_effective_message": "docs by contract 24/15 2020", "llm_decomposition_reason": "normalized_fragment_same", "fallback_rule_hit": null, - "sanitized_user_message": "документы by contract 15/24 2020", + "sanitized_user_message": "документы by contract 24/15 2020", "tool_gate_decision": "run_address_lane", "tool_gate_reason": "address_mode_classifier_detected", "answer_structure_v11": null, @@ -906,7 +906,7 @@ "trace_id": "7cYAD2ehihqh2t", "prompt_version": "normalizer_v2_0_2", "applied": false, - "effective_message": "docs by contract 15/24 2020" + "effective_message": "docs by contract 24/15 2020" } }, "error_code": null, diff --git a/docs/ADDRESS/runs/2026-04-02_Address_Slang_Live_Stress_2026-04-02_12-40-54/full_live_results.json b/docs/ADDRESS/runs/2026-04-02_Address_Slang_Live_Stress_2026-04-02_12-40-54/full_live_results.json index ad82d15..eda9a17 100644 --- a/docs/ADDRESS/runs/2026-04-02_Address_Slang_Live_Stress_2026-04-02_12-40-54/full_live_results.json +++ b/docs/ADDRESS/runs/2026-04-02_Address_Slang_Live_Stress_2026-04-02_12-40-54/full_live_results.json @@ -6393,7 +6393,7 @@ { "index": 43, "id": "S043", - "question": "покажи документы по договору 15/24 за 2020", + "question": "покажи документы по договору 24/15 за 2020", "session": null, "session_id": "asst-2026-04-02_Address_Slang_Live_Stress_2026-04-02_12-40-54-s043", "status_code": 200, @@ -6469,7 +6469,7 @@ "extracted_filters": { "sort": "period_desc", "limit": 20, - "contract": "15/24", + "contract": "24/15", "period_from": "2020-01-01", "period_to": "2020-12-31" }, @@ -6479,8 +6479,8 @@ "account_scope_mode": "preferred", "account_scope_fallback_applied": true, "anchor_type": "contract", - "anchor_value_raw": "15/24", - "anchor_value_resolved": "15/24", + "anchor_value_raw": "24/15", + "anchor_value_resolved": "24/15", "resolver_confidence": "medium", "ambiguity_count": 0, "match_failure_stage": "materialized_but_not_anchor_matched", @@ -6523,10 +6523,10 @@ "llm_decomposition_attempted": true, "llm_provider_used": "local", "llm_decomposition_trace_id": "o9lF35fLk7mxPL", - "llm_decomposition_effective_message": "Показать документы по договору 15/24 за период 2020 года.", + "llm_decomposition_effective_message": "Показать документы по договору 24/15 за период 2020 года.", "llm_decomposition_reason": "normalized_fragment_applied", "fallback_rule_hit": null, - "sanitized_user_message": "покажи документы по договору 15/24 за 2020", + "sanitized_user_message": "покажи документы по договору 24/15 за 2020", "tool_gate_decision": "run_address_lane", "tool_gate_reason": "address_mode_classifier_detected", "answer_structure_v11": null, @@ -6536,7 +6536,7 @@ "trace_id": "o9lF35fLk7mxPL", "prompt_version": "normalizer_v2_0_2", "applied": true, - "effective_message": "Показать документы по договору 15/24 за период 2020 года." + "effective_message": "Показать документы по договору 24/15 за период 2020 года." } }, "error_code": null, @@ -6545,7 +6545,7 @@ { "index": 44, "id": "S044", - "question": "доки по дог. 15/24 за 2020", + "question": "доки по дог. 24/15 за 2020", "session": null, "session_id": "asst-2026-04-02_Address_Slang_Live_Stress_2026-04-02_12-40-54-s044", "status_code": 200, @@ -6621,7 +6621,7 @@ "extracted_filters": { "sort": "period_desc", "limit": 20, - "contract": "15/24", + "contract": "24/15", "period_from": "2020-01-01", "period_to": "2020-12-31" }, @@ -6631,8 +6631,8 @@ "account_scope_mode": "preferred", "account_scope_fallback_applied": false, "anchor_type": "contract", - "anchor_value_raw": "15/24", - "anchor_value_resolved": "15/24", + "anchor_value_raw": "24/15", + "anchor_value_resolved": "24/15", "resolver_confidence": "medium", "ambiguity_count": 0, "match_failure_stage": "none", @@ -6675,10 +6675,10 @@ "llm_decomposition_attempted": true, "llm_provider_used": "local", "llm_decomposition_trace_id": "wuoGIxD37RjlUr", - "llm_decomposition_effective_message": "Документы по договору 15/24 за 2020 год.", + "llm_decomposition_effective_message": "Документы по договору 24/15 за 2020 год.", "llm_decomposition_reason": "normalized_fragment_applied", "fallback_rule_hit": null, - "sanitized_user_message": "доки по договор 15/24 за 2020", + "sanitized_user_message": "доки по договор 24/15 за 2020", "tool_gate_decision": "run_address_lane", "tool_gate_reason": "address_mode_classifier_detected", "answer_structure_v11": null, @@ -6688,7 +6688,7 @@ "trace_id": "wuoGIxD37RjlUr", "prompt_version": "normalizer_v2_0_2", "applied": true, - "effective_message": "Документы по договору 15/24 за 2020 год." + "effective_message": "Документы по договору 24/15 за 2020 год." } }, "error_code": null, @@ -6697,7 +6697,7 @@ { "index": 45, "id": "S045", - "question": "какие документы по контракту 15/24", + "question": "какие документы по контракту 24/15", "session": null, "session_id": "asst-2026-04-02_Address_Slang_Live_Stress_2026-04-02_12-40-54-s045", "status_code": 200, @@ -6774,7 +6774,7 @@ "extracted_filters": { "sort": "period_desc", "limit": 20, - "contract": "15/24" + "contract": "24/15" }, "missing_required_filters": [], "selected_recipe": "address_documents_by_contract_v1", @@ -6782,8 +6782,8 @@ "account_scope_mode": "preferred", "account_scope_fallback_applied": false, "anchor_type": "contract", - "anchor_value_raw": "15/24", - "anchor_value_resolved": "15/24", + "anchor_value_raw": "24/15", + "anchor_value_resolved": "24/15", "resolver_confidence": "medium", "ambiguity_count": 0, "match_failure_stage": "none", @@ -6826,10 +6826,10 @@ "llm_decomposition_attempted": true, "llm_provider_used": "local", "llm_decomposition_trace_id": "KZcMwE9qHuTsfW", - "llm_decomposition_effective_message": "Получить список документов, связанных с контрактом 15/24.", + "llm_decomposition_effective_message": "Получить список документов, связанных с контрактом 24/15.", "llm_decomposition_reason": "normalized_fragment_applied", "fallback_rule_hit": null, - "sanitized_user_message": "какие документы по контракту 15/24", + "sanitized_user_message": "какие документы по контракту 24/15", "tool_gate_decision": "run_address_lane", "tool_gate_reason": "address_mode_classifier_detected", "answer_structure_v11": null, @@ -6839,7 +6839,7 @@ "trace_id": "KZcMwE9qHuTsfW", "prompt_version": "normalizer_v2_0_2", "applied": true, - "effective_message": "Получить список документов, связанных с контрактом 15/24." + "effective_message": "Получить список документов, связанных с контрактом 24/15." } }, "error_code": null, @@ -6848,7 +6848,7 @@ { "index": 46, "id": "S046", - "question": "docs by contract 15/24 year 2020", + "question": "docs by contract 24/15 year 2020", "session": null, "session_id": "asst-2026-04-02_Address_Slang_Live_Stress_2026-04-02_12-40-54-s046", "status_code": 200, @@ -6923,7 +6923,7 @@ "extracted_filters": { "sort": "period_desc", "limit": 20, - "contract": "15/24 year 2020", + "contract": "24/15 year 2020", "period_from": "2020-01-01", "period_to": "2020-12-31" }, @@ -6933,8 +6933,8 @@ "account_scope_mode": "preferred", "account_scope_fallback_applied": true, "anchor_type": "contract", - "anchor_value_raw": "15/24 year 2020", - "anchor_value_resolved": "15/24 year 2020", + "anchor_value_raw": "24/15 year 2020", + "anchor_value_resolved": "24/15 year 2020", "resolver_confidence": "medium", "ambiguity_count": 0, "match_failure_stage": "materialized_but_not_anchor_matched", @@ -6977,7 +6977,7 @@ "llm_decomposition_attempted": true, "llm_provider_used": "local", "llm_decomposition_trace_id": "bdfZi1D7CmwQom", - "llm_decomposition_effective_message": "docs by contract 15/24 year 2020", + "llm_decomposition_effective_message": "docs by contract 24/15 year 2020", "llm_decomposition_reason": "normalized_fragment_same", "fallback_rule_hit": null, "sanitized_user_message": "документы by contract 15/2024 год 2020", @@ -6990,7 +6990,7 @@ "trace_id": "bdfZi1D7CmwQom", "prompt_version": "normalizer_v2_0_2", "applied": false, - "effective_message": "docs by contract 15/24 year 2020" + "effective_message": "docs by contract 24/15 year 2020" } }, "error_code": null, @@ -6999,7 +6999,7 @@ { "index": 47, "id": "S047", - "question": "бля, покажи по договору 15/24 доки", + "question": "бля, покажи по договору 24/15 доки", "session": null, "session_id": "asst-2026-04-02_Address_Slang_Live_Stress_2026-04-02_12-40-54-s047", "status_code": 200, @@ -7076,7 +7076,7 @@ "extracted_filters": { "sort": "period_desc", "limit": 20, - "contract": "15/24" + "contract": "24/15" }, "missing_required_filters": [], "selected_recipe": "address_documents_by_contract_v1", @@ -7084,8 +7084,8 @@ "account_scope_mode": "preferred", "account_scope_fallback_applied": false, "anchor_type": "contract", - "anchor_value_raw": "15/24", - "anchor_value_resolved": "15/24", + "anchor_value_raw": "24/15", + "anchor_value_resolved": "24/15", "resolver_confidence": "medium", "ambiguity_count": 0, "match_failure_stage": "none", @@ -7128,10 +7128,10 @@ "llm_decomposition_attempted": true, "llm_provider_used": "local", "llm_decomposition_trace_id": "y6jJtd5DZc5ymN", - "llm_decomposition_effective_message": "покажи документы по договору 15/24", + "llm_decomposition_effective_message": "покажи документы по договору 24/15", "llm_decomposition_reason": "normalized_fragment_applied", "fallback_rule_hit": null, - "sanitized_user_message": "покажи по договору 15/24 доки", + "sanitized_user_message": "покажи по договору 24/15 доки", "tool_gate_decision": "run_address_lane", "tool_gate_reason": "address_mode_classifier_detected", "answer_structure_v11": null, @@ -7141,7 +7141,7 @@ "trace_id": "y6jJtd5DZc5ymN", "prompt_version": "normalizer_v2_0_2", "applied": true, - "effective_message": "покажи документы по договору 15/24" + "effective_message": "покажи документы по договору 24/15" } }, "error_code": null, @@ -7150,7 +7150,7 @@ { "index": 48, "id": "S048", - "question": "договор 15/24 документы", + "question": "договор 24/15 документы", "session": null, "session_id": "asst-2026-04-02_Address_Slang_Live_Stress_2026-04-02_12-40-54-s048", "status_code": 200, @@ -7226,7 +7226,7 @@ "extracted_filters": { "sort": "period_desc", "limit": 20, - "contract": "15/24" + "contract": "24/15" }, "missing_required_filters": [], "selected_recipe": "address_documents_by_contract_v1", @@ -7234,8 +7234,8 @@ "account_scope_mode": "preferred", "account_scope_fallback_applied": false, "anchor_type": "contract", - "anchor_value_raw": "15/24", - "anchor_value_resolved": "15/24", + "anchor_value_raw": "24/15", + "anchor_value_resolved": "24/15", "resolver_confidence": "medium", "ambiguity_count": 0, "match_failure_stage": "none", @@ -7278,10 +7278,10 @@ "llm_decomposition_attempted": true, "llm_provider_used": "local", "llm_decomposition_trace_id": "O4A0L3IgKAfBV2", - "llm_decomposition_effective_message": "документы по договору 15/24", + "llm_decomposition_effective_message": "документы по договору 24/15", "llm_decomposition_reason": "normalized_fragment_applied", "fallback_rule_hit": null, - "sanitized_user_message": "договор 15/24 документы", + "sanitized_user_message": "договор 24/15 документы", "tool_gate_decision": "run_address_lane", "tool_gate_reason": "address_mode_classifier_detected", "answer_structure_v11": null, @@ -7291,7 +7291,7 @@ "trace_id": "O4A0L3IgKAfBV2", "prompt_version": "normalizer_v2_0_2", "applied": true, - "effective_message": "документы по договору 15/24" + "effective_message": "документы по договору 24/15" } }, "error_code": null, @@ -7300,7 +7300,7 @@ { "index": 49, "id": "S049", - "question": "плс документы договор №15/24", + "question": "плс документы договор №24/15", "session": null, "session_id": "asst-2026-04-02_Address_Slang_Live_Stress_2026-04-02_12-40-54-s049", "status_code": 200, @@ -7376,7 +7376,7 @@ "extracted_filters": { "sort": "period_desc", "limit": 20, - "contract": "номер 15/24" + "contract": "номер 24/15" }, "missing_required_filters": [], "selected_recipe": "address_documents_by_contract_v1", @@ -7384,8 +7384,8 @@ "account_scope_mode": "preferred", "account_scope_fallback_applied": false, "anchor_type": "contract", - "anchor_value_raw": "номер 15/24", - "anchor_value_resolved": "номер 15/24", + "anchor_value_raw": "номер 24/15", + "anchor_value_resolved": "номер 24/15", "resolver_confidence": "medium", "ambiguity_count": 0, "match_failure_stage": "materialized_but_not_anchor_matched", @@ -7428,10 +7428,10 @@ "llm_decomposition_attempted": true, "llm_provider_used": "local", "llm_decomposition_trace_id": "5q_RPN7tFdo91L", - "llm_decomposition_effective_message": "пожалуйста, предоставьте документы по договору номер 15/24", + "llm_decomposition_effective_message": "пожалуйста, предоставьте документы по договору номер 24/15", "llm_decomposition_reason": "normalized_fragment_applied", "fallback_rule_hit": null, - "sanitized_user_message": "документы договор №15/24", + "sanitized_user_message": "документы договор №24/15", "tool_gate_decision": "run_address_lane", "tool_gate_reason": "address_mode_classifier_detected", "answer_structure_v11": null, @@ -7441,7 +7441,7 @@ "trace_id": "5q_RPN7tFdo91L", "prompt_version": "normalizer_v2_0_2", "applied": true, - "effective_message": "пожалуйста, предоставьте документы по договору номер 15/24" + "effective_message": "пожалуйста, предоставьте документы по договору номер 24/15" } }, "error_code": null, @@ -7450,7 +7450,7 @@ { "index": 50, "id": "S050", - "question": "покеж документы по 15/24", + "question": "покеж документы по 24/15", "session": null, "session_id": "asst-2026-04-02_Address_Slang_Live_Stress_2026-04-02_12-40-54-s050", "status_code": 200, @@ -7526,7 +7526,7 @@ "extracted_filters": { "sort": "period_desc", "limit": 20, - "contract": "15/24" + "contract": "24/15" }, "missing_required_filters": [], "selected_recipe": "address_documents_by_contract_v1", @@ -7534,8 +7534,8 @@ "account_scope_mode": "preferred", "account_scope_fallback_applied": false, "anchor_type": "contract", - "anchor_value_raw": "15/24", - "anchor_value_resolved": "15/24", + "anchor_value_raw": "24/15", + "anchor_value_resolved": "24/15", "resolver_confidence": "medium", "ambiguity_count": 0, "match_failure_stage": "none", @@ -7578,10 +7578,10 @@ "llm_decomposition_attempted": true, "llm_provider_used": "local", "llm_decomposition_trace_id": "9je_W-aSv-mowg", - "llm_decomposition_effective_message": "покеж документы по 15/24", + "llm_decomposition_effective_message": "покеж документы по 24/15", "llm_decomposition_reason": "normalized_fragment_rejected_intent_conflict", "fallback_rule_hit": null, - "sanitized_user_message": "покеж документы по 15/24", + "sanitized_user_message": "покеж документы по 24/15", "tool_gate_decision": "run_address_lane", "tool_gate_reason": "address_mode_classifier_detected", "answer_structure_v11": null, @@ -7591,7 +7591,7 @@ "trace_id": "9je_W-aSv-mowg", "prompt_version": "normalizer_v2_0_2", "applied": false, - "effective_message": "покеж документы по 15/24" + "effective_message": "покеж документы по 24/15" } }, "error_code": null, @@ -7600,7 +7600,7 @@ { "index": 51, "id": "S051", - "question": "банковские операции по договору 15/24", + "question": "банковские операции по договору 24/15", "session": null, "session_id": "asst-2026-04-02_Address_Slang_Live_Stress_2026-04-02_12-40-54-s051", "status_code": 200, @@ -7675,7 +7675,7 @@ "extracted_filters": { "sort": "period_desc", "limit": 20, - "contract": "15/24" + "contract": "24/15" }, "missing_required_filters": [], "selected_recipe": "address_bank_operations_by_contract_v1", @@ -7683,8 +7683,8 @@ "account_scope_mode": "preferred", "account_scope_fallback_applied": false, "anchor_type": "contract", - "anchor_value_raw": "15/24", - "anchor_value_resolved": "15/24", + "anchor_value_raw": "24/15", + "anchor_value_resolved": "24/15", "resolver_confidence": "medium", "ambiguity_count": 0, "match_failure_stage": "none", @@ -7727,10 +7727,10 @@ "llm_decomposition_attempted": true, "llm_provider_used": "local", "llm_decomposition_trace_id": "wtt-wM3AKyFEbG", - "llm_decomposition_effective_message": "банковские операции по договору 15/24", + "llm_decomposition_effective_message": "банковские операции по договору 24/15", "llm_decomposition_reason": "normalized_fragment_same", "fallback_rule_hit": null, - "sanitized_user_message": "банковские операции по договору 15/24", + "sanitized_user_message": "банковские операции по договору 24/15", "tool_gate_decision": "run_address_lane", "tool_gate_reason": "address_mode_classifier_detected", "answer_structure_v11": null, @@ -7740,7 +7740,7 @@ "trace_id": "wtt-wM3AKyFEbG", "prompt_version": "normalizer_v2_0_2", "applied": false, - "effective_message": "банковские операции по договору 15/24" + "effective_message": "банковские операции по договору 24/15" } }, "error_code": null, @@ -7749,7 +7749,7 @@ { "index": 52, "id": "S052", - "question": "платежи по договору 15/24", + "question": "платежи по договору 24/15", "session": null, "session_id": "asst-2026-04-02_Address_Slang_Live_Stress_2026-04-02_12-40-54-s052", "status_code": 200, @@ -7824,7 +7824,7 @@ "extracted_filters": { "sort": "period_desc", "limit": 20, - "contract": "15/24" + "contract": "24/15" }, "missing_required_filters": [], "selected_recipe": "address_bank_operations_by_contract_v1", @@ -7832,8 +7832,8 @@ "account_scope_mode": "preferred", "account_scope_fallback_applied": false, "anchor_type": "contract", - "anchor_value_raw": "15/24", - "anchor_value_resolved": "15/24", + "anchor_value_raw": "24/15", + "anchor_value_resolved": "24/15", "resolver_confidence": "medium", "ambiguity_count": 0, "match_failure_stage": "none", @@ -7876,10 +7876,10 @@ "llm_decomposition_attempted": true, "llm_provider_used": "local", "llm_decomposition_trace_id": "V4Gxl-xjYu9oyH", - "llm_decomposition_effective_message": "платежи по договору 15/24", + "llm_decomposition_effective_message": "платежи по договору 24/15", "llm_decomposition_reason": "normalized_fragment_same", "fallback_rule_hit": null, - "sanitized_user_message": "платежи по договору 15/24", + "sanitized_user_message": "платежи по договору 24/15", "tool_gate_decision": "run_address_lane", "tool_gate_reason": "address_mode_classifier_detected", "answer_structure_v11": null, @@ -7889,7 +7889,7 @@ "trace_id": "V4Gxl-xjYu9oyH", "prompt_version": "normalizer_v2_0_2", "applied": false, - "effective_message": "платежи по договору 15/24" + "effective_message": "платежи по договору 24/15" } }, "error_code": null, @@ -7898,7 +7898,7 @@ { "index": 53, "id": "S053", - "question": "выписка по договору 15/24", + "question": "выписка по договору 24/15", "session": null, "session_id": "asst-2026-04-02_Address_Slang_Live_Stress_2026-04-02_12-40-54-s053", "status_code": 200, @@ -7973,7 +7973,7 @@ "extracted_filters": { "sort": "period_desc", "limit": 20, - "contract": "15/24" + "contract": "24/15" }, "missing_required_filters": [], "selected_recipe": "address_bank_operations_by_contract_v1", @@ -7981,8 +7981,8 @@ "account_scope_mode": "preferred", "account_scope_fallback_applied": false, "anchor_type": "contract", - "anchor_value_raw": "15/24", - "anchor_value_resolved": "15/24", + "anchor_value_raw": "24/15", + "anchor_value_resolved": "24/15", "resolver_confidence": "medium", "ambiguity_count": 0, "match_failure_stage": "none", @@ -8025,10 +8025,10 @@ "llm_decomposition_attempted": true, "llm_provider_used": "local", "llm_decomposition_trace_id": "N_CkiEr-kidksu", - "llm_decomposition_effective_message": "statement by contract 15/24", + "llm_decomposition_effective_message": "statement by contract 24/15", "llm_decomposition_reason": "normalized_fragment_applied", "fallback_rule_hit": null, - "sanitized_user_message": "выписка по договору 15/24", + "sanitized_user_message": "выписка по договору 24/15", "tool_gate_decision": "run_address_lane", "tool_gate_reason": "address_mode_classifier_detected", "answer_structure_v11": null, @@ -8038,7 +8038,7 @@ "trace_id": "N_CkiEr-kidksu", "prompt_version": "normalizer_v2_0_2", "applied": true, - "effective_message": "statement by contract 15/24" + "effective_message": "statement by contract 24/15" } }, "error_code": null, @@ -8047,7 +8047,7 @@ { "index": 54, "id": "S054", - "question": "bank ops by contract 15/24", + "question": "bank ops by contract 24/15", "session": null, "session_id": "asst-2026-04-02_Address_Slang_Live_Stress_2026-04-02_12-40-54-s054", "status_code": 200, @@ -8123,7 +8123,7 @@ "extracted_filters": { "sort": "period_desc", "limit": 20, - "contract": "15/24 в банковском учете" + "contract": "24/15 в банковском учете" }, "missing_required_filters": [], "selected_recipe": "address_bank_operations_by_contract_v1", @@ -8131,8 +8131,8 @@ "account_scope_mode": "preferred", "account_scope_fallback_applied": false, "anchor_type": "contract", - "anchor_value_raw": "15/24 в банковском учете", - "anchor_value_resolved": "15/24 в банковском учете", + "anchor_value_raw": "24/15 в банковском учете", + "anchor_value_resolved": "24/15 в банковском учете", "resolver_confidence": "medium", "ambiguity_count": 0, "match_failure_stage": "materialized_but_not_anchor_matched", @@ -8175,10 +8175,10 @@ "llm_decomposition_attempted": true, "llm_provider_used": "local", "llm_decomposition_trace_id": "yleS1oO5cSHlWk", - "llm_decomposition_effective_message": "операции по договору 15/24 в банковском учете", + "llm_decomposition_effective_message": "операции по договору 24/15 в банковском учете", "llm_decomposition_reason": "normalized_fragment_applied", "fallback_rule_hit": null, - "sanitized_user_message": "bank ops by contract 15/24", + "sanitized_user_message": "bank ops by contract 24/15", "tool_gate_decision": "run_address_lane", "tool_gate_reason": "address_mode_classifier_detected", "answer_structure_v11": null, @@ -8188,7 +8188,7 @@ "trace_id": "yleS1oO5cSHlWk", "prompt_version": "normalizer_v2_0_2", "applied": true, - "effective_message": "операции по договору 15/24 в банковском учете" + "effective_message": "операции по договору 24/15 в банковском учете" } }, "error_code": null, @@ -8197,7 +8197,7 @@ { "index": 55, "id": "S055", - "question": "ёпт, покажи банк операции по дог 15/24", + "question": "ёпт, покажи банк операции по дог 24/15", "session": null, "session_id": "asst-2026-04-02_Address_Slang_Live_Stress_2026-04-02_12-40-54-s055", "status_code": 200, @@ -8273,7 +8273,7 @@ "extracted_filters": { "sort": "period_desc", "limit": 20, - "contract": "15/24" + "contract": "24/15" }, "missing_required_filters": [], "selected_recipe": "address_bank_operations_by_contract_v1", @@ -8281,8 +8281,8 @@ "account_scope_mode": "preferred", "account_scope_fallback_applied": false, "anchor_type": "contract", - "anchor_value_raw": "15/24", - "anchor_value_resolved": "15/24", + "anchor_value_raw": "24/15", + "anchor_value_resolved": "24/15", "resolver_confidence": "medium", "ambiguity_count": 0, "match_failure_stage": "none", @@ -8325,10 +8325,10 @@ "llm_decomposition_attempted": true, "llm_provider_used": "local", "llm_decomposition_trace_id": "iWq6MjomQPmN9o", - "llm_decomposition_effective_message": "покажи банковские операции по договору 15/24", + "llm_decomposition_effective_message": "покажи банковские операции по договору 24/15", "llm_decomposition_reason": "normalized_fragment_applied", "fallback_rule_hit": null, - "sanitized_user_message": "покажи банк операции по договор 15/24", + "sanitized_user_message": "покажи банк операции по договор 24/15", "tool_gate_decision": "run_address_lane", "tool_gate_reason": "address_mode_classifier_detected", "answer_structure_v11": null, @@ -8338,7 +8338,7 @@ "trace_id": "iWq6MjomQPmN9o", "prompt_version": "normalizer_v2_0_2", "applied": true, - "effective_message": "покажи банковские операции по договору 15/24" + "effective_message": "покажи банковские операции по договору 24/15" } }, "error_code": null, @@ -8347,7 +8347,7 @@ { "index": 56, "id": "S056", - "question": "по контракту 15/24 платежки", + "question": "по контракту 24/15 платежки", "session": null, "session_id": "asst-2026-04-02_Address_Slang_Live_Stress_2026-04-02_12-40-54-s056", "status_code": 200, @@ -8423,7 +8423,7 @@ "extracted_filters": { "sort": "period_desc", "limit": 20, - "contract": "15/24" + "contract": "24/15" }, "missing_required_filters": [], "selected_recipe": "address_bank_operations_by_contract_v1", @@ -8431,8 +8431,8 @@ "account_scope_mode": "preferred", "account_scope_fallback_applied": false, "anchor_type": "contract", - "anchor_value_raw": "15/24", - "anchor_value_resolved": "15/24", + "anchor_value_raw": "24/15", + "anchor_value_resolved": "24/15", "resolver_confidence": "medium", "ambiguity_count": 0, "match_failure_stage": "none", @@ -8475,10 +8475,10 @@ "llm_decomposition_attempted": true, "llm_provider_used": "local", "llm_decomposition_trace_id": "IssEbSbuEZ7l7E", - "llm_decomposition_effective_message": "показать платежи по контракту 15/24", + "llm_decomposition_effective_message": "показать платежи по контракту 24/15", "llm_decomposition_reason": "normalized_fragment_applied", "fallback_rule_hit": null, - "sanitized_user_message": "по контракту 15/24 платежки", + "sanitized_user_message": "по контракту 24/15 платежки", "tool_gate_decision": "run_address_lane", "tool_gate_reason": "address_mode_classifier_detected", "answer_structure_v11": null, @@ -8488,7 +8488,7 @@ "trace_id": "IssEbSbuEZ7l7E", "prompt_version": "normalizer_v2_0_2", "applied": true, - "effective_message": "показать платежи по контракту 15/24" + "effective_message": "показать платежи по контракту 24/15" } }, "error_code": null, @@ -13305,7 +13305,7 @@ { "index": 89, "id": "X029", - "question": "доки по договору 15/24 за 2020", + "question": "доки по договору 24/15 за 2020", "session": null, "session_id": "asst-2026-04-02_Address_Slang_Live_Stress_2026-04-02_12-40-54-x029", "status_code": 200, @@ -13381,7 +13381,7 @@ "extracted_filters": { "sort": "period_desc", "limit": 20, - "contract": "15/24", + "contract": "24/15", "period_from": "2020-01-01", "period_to": "2020-12-31" }, @@ -13391,8 +13391,8 @@ "account_scope_mode": "preferred", "account_scope_fallback_applied": false, "anchor_type": "contract", - "anchor_value_raw": "15/24", - "anchor_value_resolved": "15/24", + "anchor_value_raw": "24/15", + "anchor_value_resolved": "24/15", "resolver_confidence": "medium", "ambiguity_count": 0, "match_failure_stage": "none", @@ -13435,10 +13435,10 @@ "llm_decomposition_attempted": true, "llm_provider_used": "local", "llm_decomposition_trace_id": "cRij36hJhf6cr3", - "llm_decomposition_effective_message": "Документы по договору 15/24 за 2020 год.", + "llm_decomposition_effective_message": "Документы по договору 24/15 за 2020 год.", "llm_decomposition_reason": "normalized_fragment_applied", "fallback_rule_hit": null, - "sanitized_user_message": "доки по договору 15/24 за 2020", + "sanitized_user_message": "доки по договору 24/15 за 2020", "tool_gate_decision": "run_address_lane", "tool_gate_reason": "address_mode_classifier_detected", "answer_structure_v11": null, @@ -13448,7 +13448,7 @@ "trace_id": "cRij36hJhf6cr3", "prompt_version": "normalizer_v2_0_2", "applied": true, - "effective_message": "Документы по договору 15/24 за 2020 год." + "effective_message": "Документы по договору 24/15 за 2020 год." } }, "error_code": null, @@ -13457,7 +13457,7 @@ { "index": 90, "id": "X030", - "question": "покажи документы контракт 15/24", + "question": "покажи документы контракт 24/15", "session": null, "session_id": "asst-2026-04-02_Address_Slang_Live_Stress_2026-04-02_12-40-54-x030", "status_code": 200, @@ -13534,7 +13534,7 @@ "extracted_filters": { "sort": "period_desc", "limit": 20, - "contract": "15/24" + "contract": "24/15" }, "missing_required_filters": [], "selected_recipe": "address_documents_by_contract_v1", @@ -13542,8 +13542,8 @@ "account_scope_mode": "preferred", "account_scope_fallback_applied": false, "anchor_type": "contract", - "anchor_value_raw": "15/24", - "anchor_value_resolved": "15/24", + "anchor_value_raw": "24/15", + "anchor_value_resolved": "24/15", "resolver_confidence": "medium", "ambiguity_count": 0, "match_failure_stage": "none", @@ -13586,10 +13586,10 @@ "llm_decomposition_attempted": true, "llm_provider_used": "local", "llm_decomposition_trace_id": "WLk8q8fEP_YP6g", - "llm_decomposition_effective_message": "Показать документы по контракту 15/24.", + "llm_decomposition_effective_message": "Показать документы по контракту 24/15.", "llm_decomposition_reason": "normalized_fragment_applied", "fallback_rule_hit": null, - "sanitized_user_message": "покажи документы контракт 15/24", + "sanitized_user_message": "покажи документы контракт 24/15", "tool_gate_decision": "run_address_lane", "tool_gate_reason": "address_mode_classifier_detected", "answer_structure_v11": null, @@ -13599,7 +13599,7 @@ "trace_id": "WLk8q8fEP_YP6g", "prompt_version": "normalizer_v2_0_2", "applied": true, - "effective_message": "Показать документы по контракту 15/24." + "effective_message": "Показать документы по контракту 24/15." } }, "error_code": null, @@ -13608,7 +13608,7 @@ { "index": 91, "id": "X031", - "question": "docs by contract 15/24 2020", + "question": "docs by contract 24/15 2020", "session": null, "session_id": "asst-2026-04-02_Address_Slang_Live_Stress_2026-04-02_12-40-54-x031", "status_code": 200, @@ -13683,7 +13683,7 @@ "extracted_filters": { "sort": "period_desc", "limit": 20, - "contract": "15/24 2020", + "contract": "24/15 2020", "period_from": "2020-01-01", "period_to": "2020-12-31" }, @@ -13693,8 +13693,8 @@ "account_scope_mode": "preferred", "account_scope_fallback_applied": true, "anchor_type": "contract", - "anchor_value_raw": "15/24 2020", - "anchor_value_resolved": "15/24 2020", + "anchor_value_raw": "24/15 2020", + "anchor_value_resolved": "24/15 2020", "resolver_confidence": "medium", "ambiguity_count": 0, "match_failure_stage": "materialized_but_not_anchor_matched", @@ -13737,10 +13737,10 @@ "llm_decomposition_attempted": true, "llm_provider_used": "local", "llm_decomposition_trace_id": "7cYAD2ehihqh2t", - "llm_decomposition_effective_message": "docs by contract 15/24 2020", + "llm_decomposition_effective_message": "docs by contract 24/15 2020", "llm_decomposition_reason": "normalized_fragment_same", "fallback_rule_hit": null, - "sanitized_user_message": "документы by contract 15/24 2020", + "sanitized_user_message": "документы by contract 24/15 2020", "tool_gate_decision": "run_address_lane", "tool_gate_reason": "address_mode_classifier_detected", "answer_structure_v11": null, @@ -13750,7 +13750,7 @@ "trace_id": "7cYAD2ehihqh2t", "prompt_version": "normalizer_v2_0_2", "applied": false, - "effective_message": "docs by contract 15/24 2020" + "effective_message": "docs by contract 24/15 2020" } }, "error_code": null, @@ -13759,7 +13759,7 @@ { "index": 92, "id": "X032", - "question": "по дог 15/24 какие документы", + "question": "по дог 24/15 какие документы", "session": null, "session_id": "asst-2026-04-02_Address_Slang_Live_Stress_2026-04-02_12-40-54-x032", "status_code": 200, @@ -13835,7 +13835,7 @@ "extracted_filters": { "sort": "period_desc", "limit": 20, - "contract": "15/24" + "contract": "24/15" }, "missing_required_filters": [], "selected_recipe": "address_documents_by_contract_v1", @@ -13843,8 +13843,8 @@ "account_scope_mode": "preferred", "account_scope_fallback_applied": false, "anchor_type": "contract", - "anchor_value_raw": "15/24", - "anchor_value_resolved": "15/24", + "anchor_value_raw": "24/15", + "anchor_value_resolved": "24/15", "resolver_confidence": "medium", "ambiguity_count": 0, "match_failure_stage": "none", @@ -13887,10 +13887,10 @@ "llm_decomposition_attempted": true, "llm_provider_used": "local", "llm_decomposition_trace_id": "MHRLkjCkyoJtki", - "llm_decomposition_effective_message": "Документы по договору 15/24", + "llm_decomposition_effective_message": "Документы по договору 24/15", "llm_decomposition_reason": "normalized_fragment_applied", "fallback_rule_hit": null, - "sanitized_user_message": "по договор 15/24 какие документы", + "sanitized_user_message": "по договор 24/15 какие документы", "tool_gate_decision": "run_address_lane", "tool_gate_reason": "address_mode_classifier_detected", "answer_structure_v11": null, @@ -13900,7 +13900,7 @@ "trace_id": "MHRLkjCkyoJtki", "prompt_version": "normalizer_v2_0_2", "applied": true, - "effective_message": "Документы по договору 15/24" + "effective_message": "Документы по договору 24/15" } }, "error_code": null, @@ -13909,7 +13909,7 @@ { "index": 93, "id": "X033", - "question": "договор 15/24 выведи доки", + "question": "договор 24/15 выведи доки", "session": null, "session_id": "asst-2026-04-02_Address_Slang_Live_Stress_2026-04-02_12-40-54-x033", "status_code": 200, @@ -13986,7 +13986,7 @@ "extracted_filters": { "sort": "period_desc", "limit": 20, - "contract": "15/24 выведите связанные документы" + "contract": "24/15 выведите связанные документы" }, "missing_required_filters": [], "selected_recipe": "address_documents_by_contract_v1", @@ -13994,8 +13994,8 @@ "account_scope_mode": "preferred", "account_scope_fallback_applied": false, "anchor_type": "contract", - "anchor_value_raw": "15/24 выведите связанные документы", - "anchor_value_resolved": "15/24 выведите связанные документы", + "anchor_value_raw": "24/15 выведите связанные документы", + "anchor_value_resolved": "24/15 выведите связанные документы", "resolver_confidence": "medium", "ambiguity_count": 0, "match_failure_stage": "materialized_but_not_anchor_matched", @@ -14038,10 +14038,10 @@ "llm_decomposition_attempted": true, "llm_provider_used": "local", "llm_decomposition_trace_id": "tfeETFH1Tak9rh", - "llm_decomposition_effective_message": "Для договора 15/24 выведите связанные документы.", + "llm_decomposition_effective_message": "Для договора 24/15 выведите связанные документы.", "llm_decomposition_reason": "normalized_fragment_applied", "fallback_rule_hit": null, - "sanitized_user_message": "договор 15/24 выведи доки", + "sanitized_user_message": "договор 24/15 выведи доки", "tool_gate_decision": "run_address_lane", "tool_gate_reason": "address_mode_classifier_detected", "answer_structure_v11": null, @@ -14051,7 +14051,7 @@ "trace_id": "tfeETFH1Tak9rh", "prompt_version": "normalizer_v2_0_2", "applied": true, - "effective_message": "Для договора 15/24 выведите связанные документы." + "effective_message": "Для договора 24/15 выведите связанные документы." } }, "error_code": null, @@ -14060,7 +14060,7 @@ { "index": 94, "id": "X034", - "question": "нах покажи документы по 15/24", + "question": "нах покажи документы по 24/15", "session": null, "session_id": "asst-2026-04-02_Address_Slang_Live_Stress_2026-04-02_12-40-54-x034", "status_code": 200, @@ -14137,7 +14137,7 @@ "extracted_filters": { "sort": "period_desc", "limit": 20, - "contract": "15/24" + "contract": "24/15" }, "missing_required_filters": [], "selected_recipe": "address_documents_by_contract_v1", @@ -14145,8 +14145,8 @@ "account_scope_mode": "preferred", "account_scope_fallback_applied": false, "anchor_type": "contract", - "anchor_value_raw": "15/24", - "anchor_value_resolved": "15/24", + "anchor_value_raw": "24/15", + "anchor_value_resolved": "24/15", "resolver_confidence": "medium", "ambiguity_count": 0, "match_failure_stage": "none", @@ -14189,10 +14189,10 @@ "llm_decomposition_attempted": true, "llm_provider_used": "local", "llm_decomposition_trace_id": "Z17YbLyUQ8dvLj", - "llm_decomposition_effective_message": "нах покажи документы по 15/24", + "llm_decomposition_effective_message": "нах покажи документы по 24/15", "llm_decomposition_reason": "normalized_fragment_rejected_intent_conflict", "fallback_rule_hit": null, - "sanitized_user_message": "покажи документы по 15/24", + "sanitized_user_message": "покажи документы по 24/15", "tool_gate_decision": "run_address_lane", "tool_gate_reason": "address_mode_classifier_detected", "answer_structure_v11": null, @@ -14202,7 +14202,7 @@ "trace_id": "Z17YbLyUQ8dvLj", "prompt_version": "normalizer_v2_0_2", "applied": false, - "effective_message": "нах покажи документы по 15/24" + "effective_message": "нах покажи документы по 24/15" } }, "error_code": null, @@ -14211,7 +14211,7 @@ { "index": 95, "id": "X035", - "question": "банк операции по договору 15/24", + "question": "банк операции по договору 24/15", "session": null, "session_id": "asst-2026-04-02_Address_Slang_Live_Stress_2026-04-02_12-40-54-x035", "status_code": 200, @@ -14286,7 +14286,7 @@ "extracted_filters": { "sort": "period_desc", "limit": 20, - "contract": "15/24" + "contract": "24/15" }, "missing_required_filters": [], "selected_recipe": "address_bank_operations_by_contract_v1", @@ -14294,8 +14294,8 @@ "account_scope_mode": "preferred", "account_scope_fallback_applied": false, "anchor_type": "contract", - "anchor_value_raw": "15/24", - "anchor_value_resolved": "15/24", + "anchor_value_raw": "24/15", + "anchor_value_resolved": "24/15", "resolver_confidence": "medium", "ambiguity_count": 0, "match_failure_stage": "none", @@ -14338,10 +14338,10 @@ "llm_decomposition_attempted": true, "llm_provider_used": "local", "llm_decomposition_trace_id": "A5E3pN_PSILC_U", - "llm_decomposition_effective_message": "операции банка по договору 15/24", + "llm_decomposition_effective_message": "операции банка по договору 24/15", "llm_decomposition_reason": "normalized_fragment_applied", "fallback_rule_hit": null, - "sanitized_user_message": "банк операции по договору 15/24", + "sanitized_user_message": "банк операции по договору 24/15", "tool_gate_decision": "run_address_lane", "tool_gate_reason": "address_mode_classifier_detected", "answer_structure_v11": null, @@ -14351,7 +14351,7 @@ "trace_id": "A5E3pN_PSILC_U", "prompt_version": "normalizer_v2_0_2", "applied": true, - "effective_message": "операции банка по договору 15/24" + "effective_message": "операции банка по договору 24/15" } }, "error_code": null, @@ -14360,7 +14360,7 @@ { "index": 96, "id": "X036", - "question": "платежки по дог 15/24", + "question": "платежки по дог 24/15", "session": null, "session_id": "asst-2026-04-02_Address_Slang_Live_Stress_2026-04-02_12-40-54-x036", "status_code": 200, @@ -14435,7 +14435,7 @@ "extracted_filters": { "sort": "period_desc", "limit": 20, - "contract": "15/24" + "contract": "24/15" }, "missing_required_filters": [], "selected_recipe": "address_bank_operations_by_contract_v1", @@ -14443,8 +14443,8 @@ "account_scope_mode": "preferred", "account_scope_fallback_applied": false, "anchor_type": "contract", - "anchor_value_raw": "15/24", - "anchor_value_resolved": "15/24", + "anchor_value_raw": "24/15", + "anchor_value_resolved": "24/15", "resolver_confidence": "medium", "ambiguity_count": 0, "match_failure_stage": "none", @@ -14487,10 +14487,10 @@ "llm_decomposition_attempted": true, "llm_provider_used": "local", "llm_decomposition_trace_id": "FPh8b6ud40utrp", - "llm_decomposition_effective_message": "платежи по договору 15/24", + "llm_decomposition_effective_message": "платежи по договору 24/15", "llm_decomposition_reason": "normalized_fragment_applied", "fallback_rule_hit": null, - "sanitized_user_message": "платежки по договор 15/24", + "sanitized_user_message": "платежки по договор 24/15", "tool_gate_decision": "run_address_lane", "tool_gate_reason": "address_mode_classifier_detected", "answer_structure_v11": null, @@ -14500,7 +14500,7 @@ "trace_id": "FPh8b6ud40utrp", "prompt_version": "normalizer_v2_0_2", "applied": true, - "effective_message": "платежи по договору 15/24" + "effective_message": "платежи по договору 24/15" } }, "error_code": null, @@ -14509,7 +14509,7 @@ { "index": 97, "id": "X037", - "question": "выписка по контракту 15/24", + "question": "выписка по контракту 24/15", "session": null, "session_id": "asst-2026-04-02_Address_Slang_Live_Stress_2026-04-02_12-40-54-x037", "status_code": 200, @@ -14584,7 +14584,7 @@ "extracted_filters": { "sort": "period_desc", "limit": 20, - "contract": "15/24" + "contract": "24/15" }, "missing_required_filters": [], "selected_recipe": "address_bank_operations_by_contract_v1", @@ -14592,8 +14592,8 @@ "account_scope_mode": "preferred", "account_scope_fallback_applied": false, "anchor_type": "contract", - "anchor_value_raw": "15/24", - "anchor_value_resolved": "15/24", + "anchor_value_raw": "24/15", + "anchor_value_resolved": "24/15", "resolver_confidence": "medium", "ambiguity_count": 0, "match_failure_stage": "none", @@ -14636,10 +14636,10 @@ "llm_decomposition_attempted": true, "llm_provider_used": "local", "llm_decomposition_trace_id": "mw2PczgUBG9Lkj", - "llm_decomposition_effective_message": "выписка по контракту 15/24", + "llm_decomposition_effective_message": "выписка по контракту 24/15", "llm_decomposition_reason": "normalized_fragment_same", "fallback_rule_hit": null, - "sanitized_user_message": "выписка по контракту 15/24", + "sanitized_user_message": "выписка по контракту 24/15", "tool_gate_decision": "run_address_lane", "tool_gate_reason": "address_mode_classifier_detected", "answer_structure_v11": null, @@ -14649,7 +14649,7 @@ "trace_id": "mw2PczgUBG9Lkj", "prompt_version": "normalizer_v2_0_2", "applied": false, - "effective_message": "выписка по контракту 15/24" + "effective_message": "выписка по контракту 24/15" } }, "error_code": null, @@ -14658,7 +14658,7 @@ { "index": 98, "id": "X038", - "question": "bank ops by contract 15/24", + "question": "bank ops by contract 24/15", "session": null, "session_id": "asst-2026-04-02_Address_Slang_Live_Stress_2026-04-02_12-40-54-x038", "status_code": 200, @@ -14734,7 +14734,7 @@ "extracted_filters": { "sort": "period_desc", "limit": 20, - "contract": "15/24 в банковском учете" + "contract": "24/15 в банковском учете" }, "missing_required_filters": [], "selected_recipe": "address_bank_operations_by_contract_v1", @@ -14742,8 +14742,8 @@ "account_scope_mode": "preferred", "account_scope_fallback_applied": false, "anchor_type": "contract", - "anchor_value_raw": "15/24 в банковском учете", - "anchor_value_resolved": "15/24 в банковском учете", + "anchor_value_raw": "24/15 в банковском учете", + "anchor_value_resolved": "24/15 в банковском учете", "resolver_confidence": "medium", "ambiguity_count": 0, "match_failure_stage": "materialized_but_not_anchor_matched", @@ -14786,10 +14786,10 @@ "llm_decomposition_attempted": true, "llm_provider_used": "local", "llm_decomposition_trace_id": "4gvTPGpkBKAPXB", - "llm_decomposition_effective_message": "операции по договору 15/24 в банковском учете", + "llm_decomposition_effective_message": "операции по договору 24/15 в банковском учете", "llm_decomposition_reason": "normalized_fragment_applied", "fallback_rule_hit": null, - "sanitized_user_message": "bank ops by contract 15/24", + "sanitized_user_message": "bank ops by contract 24/15", "tool_gate_decision": "run_address_lane", "tool_gate_reason": "address_mode_classifier_detected", "answer_structure_v11": null, @@ -14799,7 +14799,7 @@ "trace_id": "4gvTPGpkBKAPXB", "prompt_version": "normalizer_v2_0_2", "applied": true, - "effective_message": "операции по договору 15/24 в банковском учете" + "effective_message": "операции по договору 24/15 в банковском учете" } }, "error_code": null, @@ -14808,7 +14808,7 @@ { "index": 99, "id": "X039", - "question": "покажи банк опер по дог 15/24 пж", + "question": "покажи банк опер по дог 24/15 пж", "session": null, "session_id": "asst-2026-04-02_Address_Slang_Live_Stress_2026-04-02_12-40-54-x039", "status_code": 200, @@ -14884,7 +14884,7 @@ "extracted_filters": { "sort": "period_desc", "limit": 20, - "contract": "15/24" + "contract": "24/15" }, "missing_required_filters": [], "selected_recipe": "address_bank_operations_by_contract_v1", @@ -14892,8 +14892,8 @@ "account_scope_mode": "preferred", "account_scope_fallback_applied": false, "anchor_type": "contract", - "anchor_value_raw": "15/24", - "anchor_value_resolved": "15/24", + "anchor_value_raw": "24/15", + "anchor_value_resolved": "24/15", "resolver_confidence": "medium", "ambiguity_count": 0, "match_failure_stage": "none", @@ -14936,10 +14936,10 @@ "llm_decomposition_attempted": true, "llm_provider_used": "local", "llm_decomposition_trace_id": "ER0xSh6ogmYrEa", - "llm_decomposition_effective_message": "Показать банковские операции по договору 15/24.", + "llm_decomposition_effective_message": "Показать банковские операции по договору 24/15.", "llm_decomposition_reason": "normalized_fragment_applied", "fallback_rule_hit": null, - "sanitized_user_message": "покажи банк операции по договор 15/24", + "sanitized_user_message": "покажи банк операции по договор 24/15", "tool_gate_decision": "run_address_lane", "tool_gate_reason": "address_mode_classifier_detected", "answer_structure_v11": null, @@ -14949,7 +14949,7 @@ "trace_id": "ER0xSh6ogmYrEa", "prompt_version": "normalizer_v2_0_2", "applied": true, - "effective_message": "Показать банковские операции по договору 15/24." + "effective_message": "Показать банковские операции по договору 24/15." } }, "error_code": null, @@ -14958,7 +14958,7 @@ { "index": 100, "id": "X040", - "question": "епт транзакции договор 15/24", + "question": "епт транзакции договор 24/15", "session": null, "session_id": "asst-2026-04-02_Address_Slang_Live_Stress_2026-04-02_12-40-54-x040", "status_code": 200, @@ -15033,7 +15033,7 @@ "extracted_filters": { "sort": "period_desc", "limit": 20, - "contract": "15/24" + "contract": "24/15" }, "missing_required_filters": [], "selected_recipe": "address_bank_operations_by_contract_v1", @@ -15041,8 +15041,8 @@ "account_scope_mode": "preferred", "account_scope_fallback_applied": false, "anchor_type": "contract", - "anchor_value_raw": "15/24", - "anchor_value_resolved": "15/24", + "anchor_value_raw": "24/15", + "anchor_value_resolved": "24/15", "resolver_confidence": "medium", "ambiguity_count": 0, "match_failure_stage": "none", @@ -15085,10 +15085,10 @@ "llm_decomposition_attempted": true, "llm_provider_used": "local", "llm_decomposition_trace_id": "-pcQf-CR4hBkmM", - "llm_decomposition_effective_message": "Проверить или разобрать транзакции по договору 15/24.", + "llm_decomposition_effective_message": "Проверить или разобрать транзакции по договору 24/15.", "llm_decomposition_reason": "normalized_fragment_applied", "fallback_rule_hit": null, - "sanitized_user_message": "транзакции договор 15/24", + "sanitized_user_message": "транзакции договор 24/15", "tool_gate_decision": "run_address_lane", "tool_gate_reason": "address_mode_classifier_detected", "answer_structure_v11": null, @@ -15098,7 +15098,7 @@ "trace_id": "-pcQf-CR4hBkmM", "prompt_version": "normalizer_v2_0_2", "applied": true, - "effective_message": "Проверить или разобрать транзакции по договору 15/24." + "effective_message": "Проверить или разобрать транзакции по договору 24/15." } }, "error_code": null, diff --git a/docs/ADDRESS/runs/2026-04-02_Address_Slang_Live_Stress_2026-04-02_12-40-54/response_audit.md b/docs/ADDRESS/runs/2026-04-02_Address_Slang_Live_Stress_2026-04-02_12-40-54/response_audit.md index 91fcf09..0320607 100644 --- a/docs/ADDRESS/runs/2026-04-02_Address_Slang_Live_Stress_2026-04-02_12-40-54/response_audit.md +++ b/docs/ADDRESS/runs/2026-04-02_Address_Slang_Live_Stress_2026-04-02_12-40-54/response_audit.md @@ -44,20 +44,20 @@ | S040 | False | blocked_recipe_visibility_gap | partial_coverage | documents_forming_balance | recipe_visibility_gap | бля, какие доки формируют остаток 60.01 на 2020-05-31 | Текущий live recipe не дает нужную видимость данных для этого сценария. | | S041 | True | partial_non_blocking | partial_coverage | documents_forming_balance | empty_match | по счету 62.01 раскрой остаток документами на 2020-12-31 | В live-данных по текущему фильтру записи не найдены. | | S042 | True | ok_or_factual | factual | documents_forming_balance | None | из чего остаток по счету 51 на 2020-06-30 | Собран drilldown документов, формирующих остаток по счету на указанную дату. | -| S043 | False | likely_blocked_route | partial_coverage | list_documents_by_contract | empty_match | покажи документы по договору 15/24 за 2020 | В live-данных по текущему фильтру записи не найдены. | -| S044 | True | ok_or_factual | factual | list_documents_by_contract | None | доки по дог. 15/24 за 2020 | Период сохранен. Глубина live-выборки автоматически расширена до 1000 строк. | -| S045 | True | ok_or_factual | factual | list_documents_by_contract | None | какие документы по контракту 15/24 | Документный фильтр в live дал пустой набор; показываю связанные банковские операции по договору. | -| S046 | False | likely_blocked_route | partial_coverage | list_documents_by_contract | empty_match | docs by contract 15/24 year 2020 | В live-данных по текущему фильтру записи не найдены. | -| S047 | True | ok_or_factual | factual | list_documents_by_contract | None | бля, покажи по договору 15/24 доки | Документный фильтр в live дал пустой набор; показываю связанные банковские операции по договору. | -| S048 | True | ok_or_factual | factual | list_documents_by_contract | None | договор 15/24 документы | Документный фильтр в live дал пустой набор; показываю связанные банковские операции по договору. | -| S049 | True | ok_or_factual | factual | list_documents_by_contract | None | плс документы договор №15/24 | Точный якорь не подтвердился в текущем окне live-данных; показаны ближайшие доступные документы/операции по выбранному типу. | -| S050 | True | ok_or_factual | factual | list_documents_by_contract | None | покеж документы по 15/24 | Документный фильтр в live дал пустой набор; показываю связанные банковские операции по договору. | -| S051 | True | ok_or_factual | factual | bank_operations_by_contract | None | банковские операции по договору 15/24 | Собран список банковских операций по договору (live address lane). | -| S052 | True | ok_or_factual | factual | bank_operations_by_contract | None | платежи по договору 15/24 | Собран список банковских операций по договору (live address lane). | -| S053 | True | ok_or_factual | factual | bank_operations_by_contract | None | выписка по договору 15/24 | Собран список банковских операций по договору (live address lane). | -| S054 | True | ok_or_factual | factual | bank_operations_by_contract | None | bank ops by contract 15/24 | Точный якорь не подтвердился в текущем окне live-данных; показаны ближайшие доступные документы/операции по выбранному типу. | -| S055 | True | ok_or_factual | factual | bank_operations_by_contract | None | ёпт, покажи банк операции по дог 15/24 | Собран список банковских операций по договору (live address lane). | -| S056 | True | ok_or_factual | factual | bank_operations_by_contract | None | по контракту 15/24 платежки | Собран список банковских операций по договору (live address lane). | +| S043 | False | likely_blocked_route | partial_coverage | list_documents_by_contract | empty_match | покажи документы по договору 24/15 за 2020 | В live-данных по текущему фильтру записи не найдены. | +| S044 | True | ok_or_factual | factual | list_documents_by_contract | None | доки по дог. 24/15 за 2020 | Период сохранен. Глубина live-выборки автоматически расширена до 1000 строк. | +| S045 | True | ok_or_factual | factual | list_documents_by_contract | None | какие документы по контракту 24/15 | Документный фильтр в live дал пустой набор; показываю связанные банковские операции по договору. | +| S046 | False | likely_blocked_route | partial_coverage | list_documents_by_contract | empty_match | docs by contract 24/15 year 2020 | В live-данных по текущему фильтру записи не найдены. | +| S047 | True | ok_or_factual | factual | list_documents_by_contract | None | бля, покажи по договору 24/15 доки | Документный фильтр в live дал пустой набор; показываю связанные банковские операции по договору. | +| S048 | True | ok_or_factual | factual | list_documents_by_contract | None | договор 24/15 документы | Документный фильтр в live дал пустой набор; показываю связанные банковские операции по договору. | +| S049 | True | ok_or_factual | factual | list_documents_by_contract | None | плс документы договор №24/15 | Точный якорь не подтвердился в текущем окне live-данных; показаны ближайшие доступные документы/операции по выбранному типу. | +| S050 | True | ok_or_factual | factual | list_documents_by_contract | None | покеж документы по 24/15 | Документный фильтр в live дал пустой набор; показываю связанные банковские операции по договору. | +| S051 | True | ok_or_factual | factual | bank_operations_by_contract | None | банковские операции по договору 24/15 | Собран список банковских операций по договору (live address lane). | +| S052 | True | ok_or_factual | factual | bank_operations_by_contract | None | платежи по договору 24/15 | Собран список банковских операций по договору (live address lane). | +| S053 | True | ok_or_factual | factual | bank_operations_by_contract | None | выписка по договору 24/15 | Собран список банковских операций по договору (live address lane). | +| S054 | True | ok_or_factual | factual | bank_operations_by_contract | None | bank ops by contract 24/15 | Точный якорь не подтвердился в текущем окне live-данных; показаны ближайшие доступные документы/операции по выбранному типу. | +| S055 | True | ok_or_factual | factual | bank_operations_by_contract | None | ёпт, покажи банк операции по дог 24/15 | Собран список банковских операций по договору (live address lane). | +| S056 | True | ok_or_factual | factual | bank_operations_by_contract | None | по контракту 24/15 платежки | Собран список банковских операций по договору (live address lane). | | S057 | True | ok_or_factual | factual | account_balance_snapshot | None | покажи сальдо по счету 60 за 2020 | Адресный срез по счету собран (по движениям live MCP). | | S058 | True | ok_or_factual | factual | account_balance_snapshot | None | а теперь только май 2020 | Адресный срез по счету собран (по движениям live MCP). | | S059 | True | ok_or_factual | factual | account_balance_snapshot | None | ок, теперь 2020.05 | Адресный срез по счету собран (по движениям live MCP). | @@ -90,17 +90,17 @@ | X026 | True | partial_non_blocking | partial_coverage | documents_forming_balance | empty_match | раскидай остаток 62.01 по докам на 2020-12-31 | В live-данных по текущему фильтру записи не найдены. | | X027 | True | ok_or_factual | factual | documents_forming_balance | None | по счету 51 раскрой остаток документами на 2020-06-30 | Собран drilldown документов, формирующих остаток по счету на указанную дату. | | X028 | False | blocked_recipe_visibility_gap | partial_coverage | documents_forming_balance | recipe_visibility_gap | бля из чего состоит остаток по 60.01 на 2020-05-31 | Текущий live recipe не дает нужную видимость данных для этого сценария. | -| X029 | True | ok_or_factual | factual | list_documents_by_contract | None | доки по договору 15/24 за 2020 | Период сохранен. Глубина live-выборки автоматически расширена до 1000 строк. | -| X030 | True | ok_or_factual | factual | list_documents_by_contract | None | покажи документы контракт 15/24 | Документный фильтр в live дал пустой набор; показываю связанные банковские операции по договору. | -| X031 | False | likely_blocked_route | partial_coverage | list_documents_by_contract | empty_match | docs by contract 15/24 2020 | В live-данных по текущему фильтру записи не найдены. | -| X032 | True | ok_or_factual | factual | list_documents_by_contract | None | по дог 15/24 какие документы | Документный фильтр в live дал пустой набор; показываю связанные банковские операции по договору. | -| X033 | True | ok_or_factual | factual | list_documents_by_contract | None | договор 15/24 выведи доки | Точный якорь не подтвердился в текущем окне live-данных; показаны ближайшие доступные документы/операции по выбранному типу. | -| X034 | True | ok_or_factual | factual | list_documents_by_contract | None | нах покажи документы по 15/24 | Документный фильтр в live дал пустой набор; показываю связанные банковские операции по договору. | -| X035 | True | ok_or_factual | factual | bank_operations_by_contract | None | банк операции по договору 15/24 | Собран список банковских операций по договору (live address lane). | -| X036 | True | ok_or_factual | factual | bank_operations_by_contract | None | платежки по дог 15/24 | Собран список банковских операций по договору (live address lane). | -| X037 | True | ok_or_factual | factual | bank_operations_by_contract | None | выписка по контракту 15/24 | Собран список банковских операций по договору (live address lane). | -| X038 | True | ok_or_factual | factual | bank_operations_by_contract | None | bank ops by contract 15/24 | Точный якорь не подтвердился в текущем окне live-данных; показаны ближайшие доступные документы/операции по выбранному типу. | -| X039 | True | ok_or_factual | factual | bank_operations_by_contract | None | покажи банк опер по дог 15/24 пж | Собран список банковских операций по договору (live address lane). | -| X040 | True | ok_or_factual | factual | bank_operations_by_contract | None | епт транзакции договор 15/24 | Собран список банковских операций по договору (live address lane). | +| X029 | True | ok_or_factual | factual | list_documents_by_contract | None | доки по договору 24/15 за 2020 | Период сохранен. Глубина live-выборки автоматически расширена до 1000 строк. | +| X030 | True | ok_or_factual | factual | list_documents_by_contract | None | покажи документы контракт 24/15 | Документный фильтр в live дал пустой набор; показываю связанные банковские операции по договору. | +| X031 | False | likely_blocked_route | partial_coverage | list_documents_by_contract | empty_match | docs by contract 24/15 2020 | В live-данных по текущему фильтру записи не найдены. | +| X032 | True | ok_or_factual | factual | list_documents_by_contract | None | по дог 24/15 какие документы | Документный фильтр в live дал пустой набор; показываю связанные банковские операции по договору. | +| X033 | True | ok_or_factual | factual | list_documents_by_contract | None | договор 24/15 выведи доки | Точный якорь не подтвердился в текущем окне live-данных; показаны ближайшие доступные документы/операции по выбранному типу. | +| X034 | True | ok_or_factual | factual | list_documents_by_contract | None | нах покажи документы по 24/15 | Документный фильтр в live дал пустой набор; показываю связанные банковские операции по договору. | +| X035 | True | ok_or_factual | factual | bank_operations_by_contract | None | банк операции по договору 24/15 | Собран список банковских операций по договору (live address lane). | +| X036 | True | ok_or_factual | factual | bank_operations_by_contract | None | платежки по дог 24/15 | Собран список банковских операций по договору (live address lane). | +| X037 | True | ok_or_factual | factual | bank_operations_by_contract | None | выписка по контракту 24/15 | Собран список банковских операций по договору (live address lane). | +| X038 | True | ok_or_factual | factual | bank_operations_by_contract | None | bank ops by contract 24/15 | Точный якорь не подтвердился в текущем окне live-данных; показаны ближайшие доступные документы/операции по выбранному типу. | +| X039 | True | ok_or_factual | factual | bank_operations_by_contract | None | покажи банк опер по дог 24/15 пж | Собран список банковских операций по договору (live address lane). | +| X040 | True | ok_or_factual | factual | bank_operations_by_contract | None | епт транзакции договор 24/15 | Собран список банковских операций по договору (live address lane). | | X041 | True | ok_or_factual | factual | account_balance_snapshot | None | покажи сальдо по счету 60 за 2020 | Адресный срез по счету собран (по движениям live MCP). | | X042 | True | ok_or_factual | factual | account_balance_snapshot | None | а теперь только май 2020 | Адресный срез по счету собран (по движениям live MCP). | diff --git a/docs/ADDRESS/runs/2026-04-02_Address_Slang_Live_Stress_2026-04-02_12-57-27/full_live_results.json b/docs/ADDRESS/runs/2026-04-02_Address_Slang_Live_Stress_2026-04-02_12-57-27/full_live_results.json index bd7c9d4..2abd7a3 100644 --- a/docs/ADDRESS/runs/2026-04-02_Address_Slang_Live_Stress_2026-04-02_12-57-27/full_live_results.json +++ b/docs/ADDRESS/runs/2026-04-02_Address_Slang_Live_Stress_2026-04-02_12-57-27/full_live_results.json @@ -6388,7 +6388,7 @@ { "index": 43, "id": "S043", - "question": "покажи документы по договору 15/24 за 2020", + "question": "покажи документы по договору 24/15 за 2020", "session": null, "session_id": "asst-2026-04-02_Address_Slang_Live_Stress_2026-04-02_12-57-27-s043", "status_code": 200, @@ -6465,7 +6465,7 @@ "extracted_filters": { "sort": "period_desc", "limit": 20, - "contract": "15/24", + "contract": "24/15", "period_from": "2020-01-01", "period_to": "2020-12-31" }, @@ -6475,8 +6475,8 @@ "account_scope_mode": "preferred", "account_scope_fallback_applied": false, "anchor_type": "contract", - "anchor_value_raw": "15/24", - "anchor_value_resolved": "15/24", + "anchor_value_raw": "24/15", + "anchor_value_resolved": "24/15", "resolver_confidence": "medium", "ambiguity_count": 0, "match_failure_stage": "none", @@ -6519,10 +6519,10 @@ "llm_decomposition_attempted": true, "llm_provider_used": "local", "llm_decomposition_trace_id": "AwT6xxvbLZY_Zb", - "llm_decomposition_effective_message": "Показать документы по договору 15/24 за период 2020 года.", + "llm_decomposition_effective_message": "Показать документы по договору 24/15 за период 2020 года.", "llm_decomposition_reason": "normalized_fragment_applied", "fallback_rule_hit": null, - "sanitized_user_message": "покажи документы по договору 15/24 за 2020", + "sanitized_user_message": "покажи документы по договору 24/15 за 2020", "tool_gate_decision": "run_address_lane", "tool_gate_reason": "address_mode_classifier_detected", "answer_structure_v11": null, @@ -6532,7 +6532,7 @@ "trace_id": "AwT6xxvbLZY_Zb", "prompt_version": "normalizer_v2_0_2", "applied": true, - "effective_message": "Показать документы по договору 15/24 за период 2020 года." + "effective_message": "Показать документы по договору 24/15 за период 2020 года." } }, "error_code": null, @@ -6541,7 +6541,7 @@ { "index": 44, "id": "S044", - "question": "доки по дог. 15/24 за 2020", + "question": "доки по дог. 24/15 за 2020", "session": null, "session_id": "asst-2026-04-02_Address_Slang_Live_Stress_2026-04-02_12-57-27-s044", "status_code": 200, @@ -6617,7 +6617,7 @@ "extracted_filters": { "sort": "period_desc", "limit": 20, - "contract": "15/24", + "contract": "24/15", "period_from": "2020-01-01", "period_to": "2020-12-31" }, @@ -6627,8 +6627,8 @@ "account_scope_mode": "preferred", "account_scope_fallback_applied": false, "anchor_type": "contract", - "anchor_value_raw": "15/24", - "anchor_value_resolved": "15/24", + "anchor_value_raw": "24/15", + "anchor_value_resolved": "24/15", "resolver_confidence": "medium", "ambiguity_count": 0, "match_failure_stage": "none", @@ -6671,10 +6671,10 @@ "llm_decomposition_attempted": true, "llm_provider_used": "local", "llm_decomposition_trace_id": "pk3xxpmOSb6eW4", - "llm_decomposition_effective_message": "Документы по договору 15/24 за 2020 год.", + "llm_decomposition_effective_message": "Документы по договору 24/15 за 2020 год.", "llm_decomposition_reason": "normalized_fragment_applied", "fallback_rule_hit": null, - "sanitized_user_message": "доки по договор 15/24 за 2020", + "sanitized_user_message": "доки по договор 24/15 за 2020", "tool_gate_decision": "run_address_lane", "tool_gate_reason": "address_mode_classifier_detected", "answer_structure_v11": null, @@ -6684,7 +6684,7 @@ "trace_id": "pk3xxpmOSb6eW4", "prompt_version": "normalizer_v2_0_2", "applied": true, - "effective_message": "Документы по договору 15/24 за 2020 год." + "effective_message": "Документы по договору 24/15 за 2020 год." } }, "error_code": null, @@ -6693,7 +6693,7 @@ { "index": 45, "id": "S045", - "question": "какие документы по контракту 15/24", + "question": "какие документы по контракту 24/15", "session": null, "session_id": "asst-2026-04-02_Address_Slang_Live_Stress_2026-04-02_12-57-27-s045", "status_code": 200, @@ -6769,7 +6769,7 @@ "extracted_filters": { "sort": "period_desc", "limit": 20, - "contract": "15/24" + "contract": "24/15" }, "missing_required_filters": [], "selected_recipe": "address_documents_by_contract_v1", @@ -6777,8 +6777,8 @@ "account_scope_mode": "preferred", "account_scope_fallback_applied": false, "anchor_type": "contract", - "anchor_value_raw": "15/24", - "anchor_value_resolved": "15/24", + "anchor_value_raw": "24/15", + "anchor_value_resolved": "24/15", "resolver_confidence": "medium", "ambiguity_count": 0, "match_failure_stage": "none", @@ -6821,10 +6821,10 @@ "llm_decomposition_attempted": true, "llm_provider_used": "local", "llm_decomposition_trace_id": "0q6hqJeUu4PnQX", - "llm_decomposition_effective_message": "Получить список документов, связанных с контрактом 15/24.", + "llm_decomposition_effective_message": "Получить список документов, связанных с контрактом 24/15.", "llm_decomposition_reason": "normalized_fragment_applied", "fallback_rule_hit": null, - "sanitized_user_message": "какие документы по контракту 15/24", + "sanitized_user_message": "какие документы по контракту 24/15", "tool_gate_decision": "run_address_lane", "tool_gate_reason": "address_mode_classifier_detected", "answer_structure_v11": null, @@ -6834,7 +6834,7 @@ "trace_id": "0q6hqJeUu4PnQX", "prompt_version": "normalizer_v2_0_2", "applied": true, - "effective_message": "Получить список документов, связанных с контрактом 15/24." + "effective_message": "Получить список документов, связанных с контрактом 24/15." } }, "error_code": null, @@ -6843,7 +6843,7 @@ { "index": 46, "id": "S046", - "question": "docs by contract 15/24 year 2020", + "question": "docs by contract 24/15 year 2020", "session": null, "session_id": "asst-2026-04-02_Address_Slang_Live_Stress_2026-04-02_12-57-27-s046", "status_code": 200, @@ -6919,7 +6919,7 @@ "extracted_filters": { "sort": "period_desc", "limit": 20, - "contract": "15/24", + "contract": "24/15", "period_from": "2020-01-01", "period_to": "2020-12-31" }, @@ -6929,8 +6929,8 @@ "account_scope_mode": "preferred", "account_scope_fallback_applied": false, "anchor_type": "contract", - "anchor_value_raw": "15/24", - "anchor_value_resolved": "15/24", + "anchor_value_raw": "24/15", + "anchor_value_resolved": "24/15", "resolver_confidence": "medium", "ambiguity_count": 0, "match_failure_stage": "none", @@ -6973,7 +6973,7 @@ "llm_decomposition_attempted": true, "llm_provider_used": "local", "llm_decomposition_trace_id": "lVig3i92LxL0TS", - "llm_decomposition_effective_message": "docs by contract 15/24 year 2020", + "llm_decomposition_effective_message": "docs by contract 24/15 year 2020", "llm_decomposition_reason": "normalized_fragment_same", "fallback_rule_hit": null, "sanitized_user_message": "документы by contract 15/2024 год 2020", @@ -6986,7 +6986,7 @@ "trace_id": "lVig3i92LxL0TS", "prompt_version": "normalizer_v2_0_2", "applied": false, - "effective_message": "docs by contract 15/24 year 2020" + "effective_message": "docs by contract 24/15 year 2020" } }, "error_code": null, @@ -6995,7 +6995,7 @@ { "index": 47, "id": "S047", - "question": "бля, покажи по договору 15/24 доки", + "question": "бля, покажи по договору 24/15 доки", "session": null, "session_id": "asst-2026-04-02_Address_Slang_Live_Stress_2026-04-02_12-57-27-s047", "status_code": 200, @@ -7071,7 +7071,7 @@ "extracted_filters": { "sort": "period_desc", "limit": 20, - "contract": "15/24" + "contract": "24/15" }, "missing_required_filters": [], "selected_recipe": "address_documents_by_contract_v1", @@ -7079,8 +7079,8 @@ "account_scope_mode": "preferred", "account_scope_fallback_applied": false, "anchor_type": "contract", - "anchor_value_raw": "15/24", - "anchor_value_resolved": "15/24", + "anchor_value_raw": "24/15", + "anchor_value_resolved": "24/15", "resolver_confidence": "medium", "ambiguity_count": 0, "match_failure_stage": "none", @@ -7123,10 +7123,10 @@ "llm_decomposition_attempted": true, "llm_provider_used": "local", "llm_decomposition_trace_id": "_J6sJYG-BqYeCo", - "llm_decomposition_effective_message": "покажи документы по договору 15/24", + "llm_decomposition_effective_message": "покажи документы по договору 24/15", "llm_decomposition_reason": "normalized_fragment_applied", "fallback_rule_hit": null, - "sanitized_user_message": "покажи по договору 15/24 доки", + "sanitized_user_message": "покажи по договору 24/15 доки", "tool_gate_decision": "run_address_lane", "tool_gate_reason": "address_mode_classifier_detected", "answer_structure_v11": null, @@ -7136,7 +7136,7 @@ "trace_id": "_J6sJYG-BqYeCo", "prompt_version": "normalizer_v2_0_2", "applied": true, - "effective_message": "покажи документы по договору 15/24" + "effective_message": "покажи документы по договору 24/15" } }, "error_code": null, @@ -7145,7 +7145,7 @@ { "index": 48, "id": "S048", - "question": "договор 15/24 документы", + "question": "договор 24/15 документы", "session": null, "session_id": "asst-2026-04-02_Address_Slang_Live_Stress_2026-04-02_12-57-27-s048", "status_code": 200, @@ -7220,7 +7220,7 @@ "extracted_filters": { "sort": "period_desc", "limit": 20, - "contract": "15/24" + "contract": "24/15" }, "missing_required_filters": [], "selected_recipe": "address_documents_by_contract_v1", @@ -7228,8 +7228,8 @@ "account_scope_mode": "preferred", "account_scope_fallback_applied": false, "anchor_type": "contract", - "anchor_value_raw": "15/24", - "anchor_value_resolved": "15/24", + "anchor_value_raw": "24/15", + "anchor_value_resolved": "24/15", "resolver_confidence": "medium", "ambiguity_count": 0, "match_failure_stage": "none", @@ -7272,10 +7272,10 @@ "llm_decomposition_attempted": true, "llm_provider_used": "local", "llm_decomposition_trace_id": "PjDuXeAitMDQP0", - "llm_decomposition_effective_message": "документы по договору 15/24", + "llm_decomposition_effective_message": "документы по договору 24/15", "llm_decomposition_reason": "normalized_fragment_applied", "fallback_rule_hit": null, - "sanitized_user_message": "договор 15/24 документы", + "sanitized_user_message": "договор 24/15 документы", "tool_gate_decision": "run_address_lane", "tool_gate_reason": "address_mode_classifier_detected", "answer_structure_v11": null, @@ -7285,7 +7285,7 @@ "trace_id": "PjDuXeAitMDQP0", "prompt_version": "normalizer_v2_0_2", "applied": true, - "effective_message": "документы по договору 15/24" + "effective_message": "документы по договору 24/15" } }, "error_code": null, @@ -7294,7 +7294,7 @@ { "index": 49, "id": "S049", - "question": "плс документы договор №15/24", + "question": "плс документы договор №24/15", "session": null, "session_id": "asst-2026-04-02_Address_Slang_Live_Stress_2026-04-02_12-57-27-s049", "status_code": 200, @@ -7370,7 +7370,7 @@ "extracted_filters": { "sort": "period_desc", "limit": 20, - "contract": "номер 15/24" + "contract": "номер 24/15" }, "missing_required_filters": [], "selected_recipe": "address_documents_by_contract_v1", @@ -7378,8 +7378,8 @@ "account_scope_mode": "preferred", "account_scope_fallback_applied": false, "anchor_type": "contract", - "anchor_value_raw": "номер 15/24", - "anchor_value_resolved": "номер 15/24", + "anchor_value_raw": "номер 24/15", + "anchor_value_resolved": "номер 24/15", "resolver_confidence": "medium", "ambiguity_count": 0, "match_failure_stage": "materialized_but_not_anchor_matched", @@ -7422,10 +7422,10 @@ "llm_decomposition_attempted": true, "llm_provider_used": "local", "llm_decomposition_trace_id": "NRVrLvdKKBmasn", - "llm_decomposition_effective_message": "пожалуйста, предоставьте документы по договору номер 15/24", + "llm_decomposition_effective_message": "пожалуйста, предоставьте документы по договору номер 24/15", "llm_decomposition_reason": "normalized_fragment_applied", "fallback_rule_hit": null, - "sanitized_user_message": "документы договор №15/24", + "sanitized_user_message": "документы договор №24/15", "tool_gate_decision": "run_address_lane", "tool_gate_reason": "address_mode_classifier_detected", "answer_structure_v11": null, @@ -7435,7 +7435,7 @@ "trace_id": "NRVrLvdKKBmasn", "prompt_version": "normalizer_v2_0_2", "applied": true, - "effective_message": "пожалуйста, предоставьте документы по договору номер 15/24" + "effective_message": "пожалуйста, предоставьте документы по договору номер 24/15" } }, "error_code": null, @@ -7444,7 +7444,7 @@ { "index": 50, "id": "S050", - "question": "покеж документы по 15/24", + "question": "покеж документы по 24/15", "session": null, "session_id": "asst-2026-04-02_Address_Slang_Live_Stress_2026-04-02_12-57-27-s050", "status_code": 200, @@ -7519,7 +7519,7 @@ "extracted_filters": { "sort": "period_desc", "limit": 20, - "contract": "15/24" + "contract": "24/15" }, "missing_required_filters": [], "selected_recipe": "address_documents_by_contract_v1", @@ -7527,8 +7527,8 @@ "account_scope_mode": "preferred", "account_scope_fallback_applied": false, "anchor_type": "contract", - "anchor_value_raw": "15/24", - "anchor_value_resolved": "15/24", + "anchor_value_raw": "24/15", + "anchor_value_resolved": "24/15", "resolver_confidence": "medium", "ambiguity_count": 0, "match_failure_stage": "none", @@ -7571,10 +7571,10 @@ "llm_decomposition_attempted": true, "llm_provider_used": "local", "llm_decomposition_trace_id": "MK_P_4w6fdgWGG", - "llm_decomposition_effective_message": "покеж документы по 15/24", + "llm_decomposition_effective_message": "покеж документы по 24/15", "llm_decomposition_reason": "normalized_fragment_rejected_intent_conflict", "fallback_rule_hit": null, - "sanitized_user_message": "покеж документы по 15/24", + "sanitized_user_message": "покеж документы по 24/15", "tool_gate_decision": "run_address_lane", "tool_gate_reason": "address_mode_classifier_detected", "answer_structure_v11": null, @@ -7584,7 +7584,7 @@ "trace_id": "MK_P_4w6fdgWGG", "prompt_version": "normalizer_v2_0_2", "applied": false, - "effective_message": "покеж документы по 15/24" + "effective_message": "покеж документы по 24/15" } }, "error_code": null, @@ -7593,7 +7593,7 @@ { "index": 51, "id": "S051", - "question": "банковские операции по договору 15/24", + "question": "банковские операции по договору 24/15", "session": null, "session_id": "asst-2026-04-02_Address_Slang_Live_Stress_2026-04-02_12-57-27-s051", "status_code": 200, @@ -7668,7 +7668,7 @@ "extracted_filters": { "sort": "period_desc", "limit": 20, - "contract": "15/24" + "contract": "24/15" }, "missing_required_filters": [], "selected_recipe": "address_bank_operations_by_contract_v1", @@ -7676,8 +7676,8 @@ "account_scope_mode": "preferred", "account_scope_fallback_applied": false, "anchor_type": "contract", - "anchor_value_raw": "15/24", - "anchor_value_resolved": "15/24", + "anchor_value_raw": "24/15", + "anchor_value_resolved": "24/15", "resolver_confidence": "medium", "ambiguity_count": 0, "match_failure_stage": "none", @@ -7720,10 +7720,10 @@ "llm_decomposition_attempted": true, "llm_provider_used": "local", "llm_decomposition_trace_id": "2oPgSVZycfAXMD", - "llm_decomposition_effective_message": "банковские операции по договору 15/24", + "llm_decomposition_effective_message": "банковские операции по договору 24/15", "llm_decomposition_reason": "normalized_fragment_same", "fallback_rule_hit": null, - "sanitized_user_message": "банковские операции по договору 15/24", + "sanitized_user_message": "банковские операции по договору 24/15", "tool_gate_decision": "run_address_lane", "tool_gate_reason": "address_mode_classifier_detected", "answer_structure_v11": null, @@ -7733,7 +7733,7 @@ "trace_id": "2oPgSVZycfAXMD", "prompt_version": "normalizer_v2_0_2", "applied": false, - "effective_message": "банковские операции по договору 15/24" + "effective_message": "банковские операции по договору 24/15" } }, "error_code": null, @@ -7742,7 +7742,7 @@ { "index": 52, "id": "S052", - "question": "платежи по договору 15/24", + "question": "платежи по договору 24/15", "session": null, "session_id": "asst-2026-04-02_Address_Slang_Live_Stress_2026-04-02_12-57-27-s052", "status_code": 200, @@ -7817,7 +7817,7 @@ "extracted_filters": { "sort": "period_desc", "limit": 20, - "contract": "15/24" + "contract": "24/15" }, "missing_required_filters": [], "selected_recipe": "address_bank_operations_by_contract_v1", @@ -7825,8 +7825,8 @@ "account_scope_mode": "preferred", "account_scope_fallback_applied": false, "anchor_type": "contract", - "anchor_value_raw": "15/24", - "anchor_value_resolved": "15/24", + "anchor_value_raw": "24/15", + "anchor_value_resolved": "24/15", "resolver_confidence": "medium", "ambiguity_count": 0, "match_failure_stage": "none", @@ -7869,10 +7869,10 @@ "llm_decomposition_attempted": true, "llm_provider_used": "local", "llm_decomposition_trace_id": "LoDP5-yF3ZKD74", - "llm_decomposition_effective_message": "платежи по договору 15/24", + "llm_decomposition_effective_message": "платежи по договору 24/15", "llm_decomposition_reason": "normalized_fragment_same", "fallback_rule_hit": null, - "sanitized_user_message": "платежи по договору 15/24", + "sanitized_user_message": "платежи по договору 24/15", "tool_gate_decision": "run_address_lane", "tool_gate_reason": "address_mode_classifier_detected", "answer_structure_v11": null, @@ -7882,7 +7882,7 @@ "trace_id": "LoDP5-yF3ZKD74", "prompt_version": "normalizer_v2_0_2", "applied": false, - "effective_message": "платежи по договору 15/24" + "effective_message": "платежи по договору 24/15" } }, "error_code": null, @@ -7891,7 +7891,7 @@ { "index": 53, "id": "S053", - "question": "выписка по договору 15/24", + "question": "выписка по договору 24/15", "session": null, "session_id": "asst-2026-04-02_Address_Slang_Live_Stress_2026-04-02_12-57-27-s053", "status_code": 200, @@ -7966,7 +7966,7 @@ "extracted_filters": { "sort": "period_desc", "limit": 20, - "contract": "15/24" + "contract": "24/15" }, "missing_required_filters": [], "selected_recipe": "address_bank_operations_by_contract_v1", @@ -7974,8 +7974,8 @@ "account_scope_mode": "preferred", "account_scope_fallback_applied": false, "anchor_type": "contract", - "anchor_value_raw": "15/24", - "anchor_value_resolved": "15/24", + "anchor_value_raw": "24/15", + "anchor_value_resolved": "24/15", "resolver_confidence": "medium", "ambiguity_count": 0, "match_failure_stage": "none", @@ -8018,10 +8018,10 @@ "llm_decomposition_attempted": true, "llm_provider_used": "local", "llm_decomposition_trace_id": "Naxvw7_PjvoKKr", - "llm_decomposition_effective_message": "statement by contract 15/24", + "llm_decomposition_effective_message": "statement by contract 24/15", "llm_decomposition_reason": "normalized_fragment_applied", "fallback_rule_hit": null, - "sanitized_user_message": "выписка по договору 15/24", + "sanitized_user_message": "выписка по договору 24/15", "tool_gate_decision": "run_address_lane", "tool_gate_reason": "address_mode_classifier_detected", "answer_structure_v11": null, @@ -8031,7 +8031,7 @@ "trace_id": "Naxvw7_PjvoKKr", "prompt_version": "normalizer_v2_0_2", "applied": true, - "effective_message": "statement by contract 15/24" + "effective_message": "statement by contract 24/15" } }, "error_code": null, @@ -8040,7 +8040,7 @@ { "index": 54, "id": "S054", - "question": "bank ops by contract 15/24", + "question": "bank ops by contract 24/15", "session": null, "session_id": "asst-2026-04-02_Address_Slang_Live_Stress_2026-04-02_12-57-27-s054", "status_code": 200, @@ -8116,7 +8116,7 @@ "extracted_filters": { "sort": "period_desc", "limit": 20, - "contract": "15/24 в банковском учете" + "contract": "24/15 в банковском учете" }, "missing_required_filters": [], "selected_recipe": "address_bank_operations_by_contract_v1", @@ -8124,8 +8124,8 @@ "account_scope_mode": "preferred", "account_scope_fallback_applied": false, "anchor_type": "contract", - "anchor_value_raw": "15/24 в банковском учете", - "anchor_value_resolved": "15/24 в банковском учете", + "anchor_value_raw": "24/15 в банковском учете", + "anchor_value_resolved": "24/15 в банковском учете", "resolver_confidence": "medium", "ambiguity_count": 0, "match_failure_stage": "materialized_but_not_anchor_matched", @@ -8168,10 +8168,10 @@ "llm_decomposition_attempted": true, "llm_provider_used": "local", "llm_decomposition_trace_id": "4RO3l3wGB8FwqJ", - "llm_decomposition_effective_message": "операции по договору 15/24 в банковском учете", + "llm_decomposition_effective_message": "операции по договору 24/15 в банковском учете", "llm_decomposition_reason": "normalized_fragment_applied", "fallback_rule_hit": null, - "sanitized_user_message": "bank ops by contract 15/24", + "sanitized_user_message": "bank ops by contract 24/15", "tool_gate_decision": "run_address_lane", "tool_gate_reason": "address_mode_classifier_detected", "answer_structure_v11": null, @@ -8181,7 +8181,7 @@ "trace_id": "4RO3l3wGB8FwqJ", "prompt_version": "normalizer_v2_0_2", "applied": true, - "effective_message": "операции по договору 15/24 в банковском учете" + "effective_message": "операции по договору 24/15 в банковском учете" } }, "error_code": null, @@ -8190,7 +8190,7 @@ { "index": 55, "id": "S055", - "question": "ёпт, покажи банк операции по дог 15/24", + "question": "ёпт, покажи банк операции по дог 24/15", "session": null, "session_id": "asst-2026-04-02_Address_Slang_Live_Stress_2026-04-02_12-57-27-s055", "status_code": 200, @@ -8266,7 +8266,7 @@ "extracted_filters": { "sort": "period_desc", "limit": 20, - "contract": "15/24" + "contract": "24/15" }, "missing_required_filters": [], "selected_recipe": "address_bank_operations_by_contract_v1", @@ -8274,8 +8274,8 @@ "account_scope_mode": "preferred", "account_scope_fallback_applied": false, "anchor_type": "contract", - "anchor_value_raw": "15/24", - "anchor_value_resolved": "15/24", + "anchor_value_raw": "24/15", + "anchor_value_resolved": "24/15", "resolver_confidence": "medium", "ambiguity_count": 0, "match_failure_stage": "none", @@ -8318,10 +8318,10 @@ "llm_decomposition_attempted": true, "llm_provider_used": "local", "llm_decomposition_trace_id": "_9xrRi9K0-PnSb", - "llm_decomposition_effective_message": "покажи банковские операции по договору 15/24", + "llm_decomposition_effective_message": "покажи банковские операции по договору 24/15", "llm_decomposition_reason": "normalized_fragment_applied", "fallback_rule_hit": null, - "sanitized_user_message": "покажи банк операции по договор 15/24", + "sanitized_user_message": "покажи банк операции по договор 24/15", "tool_gate_decision": "run_address_lane", "tool_gate_reason": "address_mode_classifier_detected", "answer_structure_v11": null, @@ -8331,7 +8331,7 @@ "trace_id": "_9xrRi9K0-PnSb", "prompt_version": "normalizer_v2_0_2", "applied": true, - "effective_message": "покажи банковские операции по договору 15/24" + "effective_message": "покажи банковские операции по договору 24/15" } }, "error_code": null, @@ -8340,7 +8340,7 @@ { "index": 56, "id": "S056", - "question": "по контракту 15/24 платежки", + "question": "по контракту 24/15 платежки", "session": null, "session_id": "asst-2026-04-02_Address_Slang_Live_Stress_2026-04-02_12-57-27-s056", "status_code": 200, @@ -8416,7 +8416,7 @@ "extracted_filters": { "sort": "period_desc", "limit": 20, - "contract": "15/24" + "contract": "24/15" }, "missing_required_filters": [], "selected_recipe": "address_bank_operations_by_contract_v1", @@ -8424,8 +8424,8 @@ "account_scope_mode": "preferred", "account_scope_fallback_applied": false, "anchor_type": "contract", - "anchor_value_raw": "15/24", - "anchor_value_resolved": "15/24", + "anchor_value_raw": "24/15", + "anchor_value_resolved": "24/15", "resolver_confidence": "medium", "ambiguity_count": 0, "match_failure_stage": "none", @@ -8468,10 +8468,10 @@ "llm_decomposition_attempted": true, "llm_provider_used": "local", "llm_decomposition_trace_id": "6upqCR3cCTtRe6", - "llm_decomposition_effective_message": "показать платежи по контракту 15/24", + "llm_decomposition_effective_message": "показать платежи по контракту 24/15", "llm_decomposition_reason": "normalized_fragment_applied", "fallback_rule_hit": null, - "sanitized_user_message": "по контракту 15/24 платежки", + "sanitized_user_message": "по контракту 24/15 платежки", "tool_gate_decision": "run_address_lane", "tool_gate_reason": "address_mode_classifier_detected", "answer_structure_v11": null, @@ -8481,7 +8481,7 @@ "trace_id": "6upqCR3cCTtRe6", "prompt_version": "normalizer_v2_0_2", "applied": true, - "effective_message": "показать платежи по контракту 15/24" + "effective_message": "показать платежи по контракту 24/15" } }, "error_code": null, @@ -13298,7 +13298,7 @@ { "index": 89, "id": "X029", - "question": "доки по договору 15/24 за 2020", + "question": "доки по договору 24/15 за 2020", "session": null, "session_id": "asst-2026-04-02_Address_Slang_Live_Stress_2026-04-02_12-57-27-x029", "status_code": 200, @@ -13374,7 +13374,7 @@ "extracted_filters": { "sort": "period_desc", "limit": 20, - "contract": "15/24", + "contract": "24/15", "period_from": "2020-01-01", "period_to": "2020-12-31" }, @@ -13384,8 +13384,8 @@ "account_scope_mode": "preferred", "account_scope_fallback_applied": false, "anchor_type": "contract", - "anchor_value_raw": "15/24", - "anchor_value_resolved": "15/24", + "anchor_value_raw": "24/15", + "anchor_value_resolved": "24/15", "resolver_confidence": "medium", "ambiguity_count": 0, "match_failure_stage": "none", @@ -13428,10 +13428,10 @@ "llm_decomposition_attempted": true, "llm_provider_used": "local", "llm_decomposition_trace_id": "4Ci3qptzXQI3k7", - "llm_decomposition_effective_message": "Документы по договору 15/24 за 2020 год.", + "llm_decomposition_effective_message": "Документы по договору 24/15 за 2020 год.", "llm_decomposition_reason": "normalized_fragment_applied", "fallback_rule_hit": null, - "sanitized_user_message": "доки по договору 15/24 за 2020", + "sanitized_user_message": "доки по договору 24/15 за 2020", "tool_gate_decision": "run_address_lane", "tool_gate_reason": "address_mode_classifier_detected", "answer_structure_v11": null, @@ -13441,7 +13441,7 @@ "trace_id": "4Ci3qptzXQI3k7", "prompt_version": "normalizer_v2_0_2", "applied": true, - "effective_message": "Документы по договору 15/24 за 2020 год." + "effective_message": "Документы по договору 24/15 за 2020 год." } }, "error_code": null, @@ -13450,7 +13450,7 @@ { "index": 90, "id": "X030", - "question": "покажи документы контракт 15/24", + "question": "покажи документы контракт 24/15", "session": null, "session_id": "asst-2026-04-02_Address_Slang_Live_Stress_2026-04-02_12-57-27-x030", "status_code": 200, @@ -13526,7 +13526,7 @@ "extracted_filters": { "sort": "period_desc", "limit": 20, - "contract": "15/24" + "contract": "24/15" }, "missing_required_filters": [], "selected_recipe": "address_documents_by_contract_v1", @@ -13534,8 +13534,8 @@ "account_scope_mode": "preferred", "account_scope_fallback_applied": false, "anchor_type": "contract", - "anchor_value_raw": "15/24", - "anchor_value_resolved": "15/24", + "anchor_value_raw": "24/15", + "anchor_value_resolved": "24/15", "resolver_confidence": "medium", "ambiguity_count": 0, "match_failure_stage": "none", @@ -13578,10 +13578,10 @@ "llm_decomposition_attempted": true, "llm_provider_used": "local", "llm_decomposition_trace_id": "zjScJj7s9hzJXw", - "llm_decomposition_effective_message": "Показать документы по контракту 15/24.", + "llm_decomposition_effective_message": "Показать документы по контракту 24/15.", "llm_decomposition_reason": "normalized_fragment_applied", "fallback_rule_hit": null, - "sanitized_user_message": "покажи документы контракт 15/24", + "sanitized_user_message": "покажи документы контракт 24/15", "tool_gate_decision": "run_address_lane", "tool_gate_reason": "address_mode_classifier_detected", "answer_structure_v11": null, @@ -13591,7 +13591,7 @@ "trace_id": "zjScJj7s9hzJXw", "prompt_version": "normalizer_v2_0_2", "applied": true, - "effective_message": "Показать документы по контракту 15/24." + "effective_message": "Показать документы по контракту 24/15." } }, "error_code": null, @@ -13600,7 +13600,7 @@ { "index": 91, "id": "X031", - "question": "docs by contract 15/24 2020", + "question": "docs by contract 24/15 2020", "session": null, "session_id": "asst-2026-04-02_Address_Slang_Live_Stress_2026-04-02_12-57-27-x031", "status_code": 200, @@ -13676,7 +13676,7 @@ "extracted_filters": { "sort": "period_desc", "limit": 20, - "contract": "15/24", + "contract": "24/15", "period_from": "2020-01-01", "period_to": "2020-12-31" }, @@ -13686,8 +13686,8 @@ "account_scope_mode": "preferred", "account_scope_fallback_applied": false, "anchor_type": "contract", - "anchor_value_raw": "15/24", - "anchor_value_resolved": "15/24", + "anchor_value_raw": "24/15", + "anchor_value_resolved": "24/15", "resolver_confidence": "medium", "ambiguity_count": 0, "match_failure_stage": "none", @@ -13730,10 +13730,10 @@ "llm_decomposition_attempted": true, "llm_provider_used": "local", "llm_decomposition_trace_id": "ogxPFfr2zmrXEJ", - "llm_decomposition_effective_message": "docs by contract 15/24 2020", + "llm_decomposition_effective_message": "docs by contract 24/15 2020", "llm_decomposition_reason": "normalized_fragment_same", "fallback_rule_hit": null, - "sanitized_user_message": "документы by contract 15/24 2020", + "sanitized_user_message": "документы by contract 24/15 2020", "tool_gate_decision": "run_address_lane", "tool_gate_reason": "address_mode_classifier_detected", "answer_structure_v11": null, @@ -13743,7 +13743,7 @@ "trace_id": "ogxPFfr2zmrXEJ", "prompt_version": "normalizer_v2_0_2", "applied": false, - "effective_message": "docs by contract 15/24 2020" + "effective_message": "docs by contract 24/15 2020" } }, "error_code": null, @@ -13752,7 +13752,7 @@ { "index": 92, "id": "X032", - "question": "по дог 15/24 какие документы", + "question": "по дог 24/15 какие документы", "session": null, "session_id": "asst-2026-04-02_Address_Slang_Live_Stress_2026-04-02_12-57-27-x032", "status_code": 200, @@ -13827,7 +13827,7 @@ "extracted_filters": { "sort": "period_desc", "limit": 20, - "contract": "15/24" + "contract": "24/15" }, "missing_required_filters": [], "selected_recipe": "address_documents_by_contract_v1", @@ -13835,8 +13835,8 @@ "account_scope_mode": "preferred", "account_scope_fallback_applied": false, "anchor_type": "contract", - "anchor_value_raw": "15/24", - "anchor_value_resolved": "15/24", + "anchor_value_raw": "24/15", + "anchor_value_resolved": "24/15", "resolver_confidence": "medium", "ambiguity_count": 0, "match_failure_stage": "none", @@ -13879,10 +13879,10 @@ "llm_decomposition_attempted": true, "llm_provider_used": "local", "llm_decomposition_trace_id": "te6YN818WvCmRp", - "llm_decomposition_effective_message": "Документы по договору 15/24", + "llm_decomposition_effective_message": "Документы по договору 24/15", "llm_decomposition_reason": "normalized_fragment_applied", "fallback_rule_hit": null, - "sanitized_user_message": "по договор 15/24 какие документы", + "sanitized_user_message": "по договор 24/15 какие документы", "tool_gate_decision": "run_address_lane", "tool_gate_reason": "address_mode_classifier_detected", "answer_structure_v11": null, @@ -13892,7 +13892,7 @@ "trace_id": "te6YN818WvCmRp", "prompt_version": "normalizer_v2_0_2", "applied": true, - "effective_message": "Документы по договору 15/24" + "effective_message": "Документы по договору 24/15" } }, "error_code": null, @@ -13901,7 +13901,7 @@ { "index": 93, "id": "X033", - "question": "договор 15/24 выведи доки", + "question": "договор 24/15 выведи доки", "session": null, "session_id": "asst-2026-04-02_Address_Slang_Live_Stress_2026-04-02_12-57-27-x033", "status_code": 200, @@ -13978,7 +13978,7 @@ "extracted_filters": { "sort": "period_desc", "limit": 20, - "contract": "15/24 выведите связанные документы" + "contract": "24/15 выведите связанные документы" }, "missing_required_filters": [], "selected_recipe": "address_documents_by_contract_v1", @@ -13986,8 +13986,8 @@ "account_scope_mode": "preferred", "account_scope_fallback_applied": false, "anchor_type": "contract", - "anchor_value_raw": "15/24 выведите связанные документы", - "anchor_value_resolved": "15/24 выведите связанные документы", + "anchor_value_raw": "24/15 выведите связанные документы", + "anchor_value_resolved": "24/15 выведите связанные документы", "resolver_confidence": "medium", "ambiguity_count": 0, "match_failure_stage": "materialized_but_not_anchor_matched", @@ -14030,10 +14030,10 @@ "llm_decomposition_attempted": true, "llm_provider_used": "local", "llm_decomposition_trace_id": "ipQ5ElZyjfkvKR", - "llm_decomposition_effective_message": "Для договора 15/24 выведите связанные документы.", + "llm_decomposition_effective_message": "Для договора 24/15 выведите связанные документы.", "llm_decomposition_reason": "normalized_fragment_applied", "fallback_rule_hit": null, - "sanitized_user_message": "договор 15/24 выведи доки", + "sanitized_user_message": "договор 24/15 выведи доки", "tool_gate_decision": "run_address_lane", "tool_gate_reason": "address_mode_classifier_detected", "answer_structure_v11": null, @@ -14043,7 +14043,7 @@ "trace_id": "ipQ5ElZyjfkvKR", "prompt_version": "normalizer_v2_0_2", "applied": true, - "effective_message": "Для договора 15/24 выведите связанные документы." + "effective_message": "Для договора 24/15 выведите связанные документы." } }, "error_code": null, @@ -14052,7 +14052,7 @@ { "index": 94, "id": "X034", - "question": "нах покажи документы по 15/24", + "question": "нах покажи документы по 24/15", "session": null, "session_id": "asst-2026-04-02_Address_Slang_Live_Stress_2026-04-02_12-57-27-x034", "status_code": 200, @@ -14128,7 +14128,7 @@ "extracted_filters": { "sort": "period_desc", "limit": 20, - "contract": "15/24" + "contract": "24/15" }, "missing_required_filters": [], "selected_recipe": "address_documents_by_contract_v1", @@ -14136,8 +14136,8 @@ "account_scope_mode": "preferred", "account_scope_fallback_applied": false, "anchor_type": "contract", - "anchor_value_raw": "15/24", - "anchor_value_resolved": "15/24", + "anchor_value_raw": "24/15", + "anchor_value_resolved": "24/15", "resolver_confidence": "medium", "ambiguity_count": 0, "match_failure_stage": "none", @@ -14180,10 +14180,10 @@ "llm_decomposition_attempted": true, "llm_provider_used": "local", "llm_decomposition_trace_id": "5lzxYDMkDv9bQF", - "llm_decomposition_effective_message": "нах покажи документы по 15/24", + "llm_decomposition_effective_message": "нах покажи документы по 24/15", "llm_decomposition_reason": "normalized_fragment_rejected_intent_conflict", "fallback_rule_hit": null, - "sanitized_user_message": "покажи документы по 15/24", + "sanitized_user_message": "покажи документы по 24/15", "tool_gate_decision": "run_address_lane", "tool_gate_reason": "address_mode_classifier_detected", "answer_structure_v11": null, @@ -14193,7 +14193,7 @@ "trace_id": "5lzxYDMkDv9bQF", "prompt_version": "normalizer_v2_0_2", "applied": false, - "effective_message": "нах покажи документы по 15/24" + "effective_message": "нах покажи документы по 24/15" } }, "error_code": null, @@ -14202,7 +14202,7 @@ { "index": 95, "id": "X035", - "question": "банк операции по договору 15/24", + "question": "банк операции по договору 24/15", "session": null, "session_id": "asst-2026-04-02_Address_Slang_Live_Stress_2026-04-02_12-57-27-x035", "status_code": 200, @@ -14277,7 +14277,7 @@ "extracted_filters": { "sort": "period_desc", "limit": 20, - "contract": "15/24" + "contract": "24/15" }, "missing_required_filters": [], "selected_recipe": "address_bank_operations_by_contract_v1", @@ -14285,8 +14285,8 @@ "account_scope_mode": "preferred", "account_scope_fallback_applied": false, "anchor_type": "contract", - "anchor_value_raw": "15/24", - "anchor_value_resolved": "15/24", + "anchor_value_raw": "24/15", + "anchor_value_resolved": "24/15", "resolver_confidence": "medium", "ambiguity_count": 0, "match_failure_stage": "none", @@ -14329,10 +14329,10 @@ "llm_decomposition_attempted": true, "llm_provider_used": "local", "llm_decomposition_trace_id": "U95RwVzq2flbVq", - "llm_decomposition_effective_message": "операции банка по договору 15/24", + "llm_decomposition_effective_message": "операции банка по договору 24/15", "llm_decomposition_reason": "normalized_fragment_applied", "fallback_rule_hit": null, - "sanitized_user_message": "банк операции по договору 15/24", + "sanitized_user_message": "банк операции по договору 24/15", "tool_gate_decision": "run_address_lane", "tool_gate_reason": "address_mode_classifier_detected", "answer_structure_v11": null, @@ -14342,7 +14342,7 @@ "trace_id": "U95RwVzq2flbVq", "prompt_version": "normalizer_v2_0_2", "applied": true, - "effective_message": "операции банка по договору 15/24" + "effective_message": "операции банка по договору 24/15" } }, "error_code": null, @@ -14351,7 +14351,7 @@ { "index": 96, "id": "X036", - "question": "платежки по дог 15/24", + "question": "платежки по дог 24/15", "session": null, "session_id": "asst-2026-04-02_Address_Slang_Live_Stress_2026-04-02_12-57-27-x036", "status_code": 200, @@ -14426,7 +14426,7 @@ "extracted_filters": { "sort": "period_desc", "limit": 20, - "contract": "15/24" + "contract": "24/15" }, "missing_required_filters": [], "selected_recipe": "address_bank_operations_by_contract_v1", @@ -14434,8 +14434,8 @@ "account_scope_mode": "preferred", "account_scope_fallback_applied": false, "anchor_type": "contract", - "anchor_value_raw": "15/24", - "anchor_value_resolved": "15/24", + "anchor_value_raw": "24/15", + "anchor_value_resolved": "24/15", "resolver_confidence": "medium", "ambiguity_count": 0, "match_failure_stage": "none", @@ -14478,10 +14478,10 @@ "llm_decomposition_attempted": true, "llm_provider_used": "local", "llm_decomposition_trace_id": "HFlTa_AWRoqvKF", - "llm_decomposition_effective_message": "платежи по договору 15/24", + "llm_decomposition_effective_message": "платежи по договору 24/15", "llm_decomposition_reason": "normalized_fragment_applied", "fallback_rule_hit": null, - "sanitized_user_message": "платежки по договор 15/24", + "sanitized_user_message": "платежки по договор 24/15", "tool_gate_decision": "run_address_lane", "tool_gate_reason": "address_mode_classifier_detected", "answer_structure_v11": null, @@ -14491,7 +14491,7 @@ "trace_id": "HFlTa_AWRoqvKF", "prompt_version": "normalizer_v2_0_2", "applied": true, - "effective_message": "платежи по договору 15/24" + "effective_message": "платежи по договору 24/15" } }, "error_code": null, @@ -14500,7 +14500,7 @@ { "index": 97, "id": "X037", - "question": "выписка по контракту 15/24", + "question": "выписка по контракту 24/15", "session": null, "session_id": "asst-2026-04-02_Address_Slang_Live_Stress_2026-04-02_12-57-27-x037", "status_code": 200, @@ -14575,7 +14575,7 @@ "extracted_filters": { "sort": "period_desc", "limit": 20, - "contract": "15/24" + "contract": "24/15" }, "missing_required_filters": [], "selected_recipe": "address_bank_operations_by_contract_v1", @@ -14583,8 +14583,8 @@ "account_scope_mode": "preferred", "account_scope_fallback_applied": false, "anchor_type": "contract", - "anchor_value_raw": "15/24", - "anchor_value_resolved": "15/24", + "anchor_value_raw": "24/15", + "anchor_value_resolved": "24/15", "resolver_confidence": "medium", "ambiguity_count": 0, "match_failure_stage": "none", @@ -14627,10 +14627,10 @@ "llm_decomposition_attempted": true, "llm_provider_used": "local", "llm_decomposition_trace_id": "o00wtr5M2gbAto", - "llm_decomposition_effective_message": "выписка по контракту 15/24", + "llm_decomposition_effective_message": "выписка по контракту 24/15", "llm_decomposition_reason": "normalized_fragment_same", "fallback_rule_hit": null, - "sanitized_user_message": "выписка по контракту 15/24", + "sanitized_user_message": "выписка по контракту 24/15", "tool_gate_decision": "run_address_lane", "tool_gate_reason": "address_mode_classifier_detected", "answer_structure_v11": null, @@ -14640,7 +14640,7 @@ "trace_id": "o00wtr5M2gbAto", "prompt_version": "normalizer_v2_0_2", "applied": false, - "effective_message": "выписка по контракту 15/24" + "effective_message": "выписка по контракту 24/15" } }, "error_code": null, @@ -14649,7 +14649,7 @@ { "index": 98, "id": "X038", - "question": "bank ops by contract 15/24", + "question": "bank ops by contract 24/15", "session": null, "session_id": "asst-2026-04-02_Address_Slang_Live_Stress_2026-04-02_12-57-27-x038", "status_code": 200, @@ -14725,7 +14725,7 @@ "extracted_filters": { "sort": "period_desc", "limit": 20, - "contract": "15/24 в банковском учете" + "contract": "24/15 в банковском учете" }, "missing_required_filters": [], "selected_recipe": "address_bank_operations_by_contract_v1", @@ -14733,8 +14733,8 @@ "account_scope_mode": "preferred", "account_scope_fallback_applied": false, "anchor_type": "contract", - "anchor_value_raw": "15/24 в банковском учете", - "anchor_value_resolved": "15/24 в банковском учете", + "anchor_value_raw": "24/15 в банковском учете", + "anchor_value_resolved": "24/15 в банковском учете", "resolver_confidence": "medium", "ambiguity_count": 0, "match_failure_stage": "materialized_but_not_anchor_matched", @@ -14777,10 +14777,10 @@ "llm_decomposition_attempted": true, "llm_provider_used": "local", "llm_decomposition_trace_id": "TndSiGRO9E0x2E", - "llm_decomposition_effective_message": "операции по договору 15/24 в банковском учете", + "llm_decomposition_effective_message": "операции по договору 24/15 в банковском учете", "llm_decomposition_reason": "normalized_fragment_applied", "fallback_rule_hit": null, - "sanitized_user_message": "bank ops by contract 15/24", + "sanitized_user_message": "bank ops by contract 24/15", "tool_gate_decision": "run_address_lane", "tool_gate_reason": "address_mode_classifier_detected", "answer_structure_v11": null, @@ -14790,7 +14790,7 @@ "trace_id": "TndSiGRO9E0x2E", "prompt_version": "normalizer_v2_0_2", "applied": true, - "effective_message": "операции по договору 15/24 в банковском учете" + "effective_message": "операции по договору 24/15 в банковском учете" } }, "error_code": null, @@ -14799,7 +14799,7 @@ { "index": 99, "id": "X039", - "question": "покажи банк опер по дог 15/24 пж", + "question": "покажи банк опер по дог 24/15 пж", "session": null, "session_id": "asst-2026-04-02_Address_Slang_Live_Stress_2026-04-02_12-57-27-x039", "status_code": 200, @@ -14875,7 +14875,7 @@ "extracted_filters": { "sort": "period_desc", "limit": 20, - "contract": "15/24" + "contract": "24/15" }, "missing_required_filters": [], "selected_recipe": "address_bank_operations_by_contract_v1", @@ -14883,8 +14883,8 @@ "account_scope_mode": "preferred", "account_scope_fallback_applied": false, "anchor_type": "contract", - "anchor_value_raw": "15/24", - "anchor_value_resolved": "15/24", + "anchor_value_raw": "24/15", + "anchor_value_resolved": "24/15", "resolver_confidence": "medium", "ambiguity_count": 0, "match_failure_stage": "none", @@ -14927,10 +14927,10 @@ "llm_decomposition_attempted": true, "llm_provider_used": "local", "llm_decomposition_trace_id": "y19vP2-qfEIomV", - "llm_decomposition_effective_message": "Показать банковские операции по договору 15/24.", + "llm_decomposition_effective_message": "Показать банковские операции по договору 24/15.", "llm_decomposition_reason": "normalized_fragment_applied", "fallback_rule_hit": null, - "sanitized_user_message": "покажи банк операции по договор 15/24", + "sanitized_user_message": "покажи банк операции по договор 24/15", "tool_gate_decision": "run_address_lane", "tool_gate_reason": "address_mode_classifier_detected", "answer_structure_v11": null, @@ -14940,7 +14940,7 @@ "trace_id": "y19vP2-qfEIomV", "prompt_version": "normalizer_v2_0_2", "applied": true, - "effective_message": "Показать банковские операции по договору 15/24." + "effective_message": "Показать банковские операции по договору 24/15." } }, "error_code": null, @@ -14949,7 +14949,7 @@ { "index": 100, "id": "X040", - "question": "епт транзакции договор 15/24", + "question": "епт транзакции договор 24/15", "session": null, "session_id": "asst-2026-04-02_Address_Slang_Live_Stress_2026-04-02_12-57-27-x040", "status_code": 200, @@ -15024,7 +15024,7 @@ "extracted_filters": { "sort": "period_desc", "limit": 20, - "contract": "15/24" + "contract": "24/15" }, "missing_required_filters": [], "selected_recipe": "address_bank_operations_by_contract_v1", @@ -15032,8 +15032,8 @@ "account_scope_mode": "preferred", "account_scope_fallback_applied": false, "anchor_type": "contract", - "anchor_value_raw": "15/24", - "anchor_value_resolved": "15/24", + "anchor_value_raw": "24/15", + "anchor_value_resolved": "24/15", "resolver_confidence": "medium", "ambiguity_count": 0, "match_failure_stage": "none", @@ -15076,10 +15076,10 @@ "llm_decomposition_attempted": true, "llm_provider_used": "local", "llm_decomposition_trace_id": "AYdyt2f6MiwN6f", - "llm_decomposition_effective_message": "Проверить или разобрать транзакции по договору 15/24.", + "llm_decomposition_effective_message": "Проверить или разобрать транзакции по договору 24/15.", "llm_decomposition_reason": "normalized_fragment_applied", "fallback_rule_hit": null, - "sanitized_user_message": "транзакции договор 15/24", + "sanitized_user_message": "транзакции договор 24/15", "tool_gate_decision": "run_address_lane", "tool_gate_reason": "address_mode_classifier_detected", "answer_structure_v11": null, @@ -15089,7 +15089,7 @@ "trace_id": "AYdyt2f6MiwN6f", "prompt_version": "normalizer_v2_0_2", "applied": true, - "effective_message": "Проверить или разобрать транзакции по договору 15/24." + "effective_message": "Проверить или разобрать транзакции по договору 24/15." } }, "error_code": null, diff --git a/docs/ADDRESS/runs/2026-04-02_Address_Slang_Live_Stress_2026-04-02_12-57-27/response_audit.md b/docs/ADDRESS/runs/2026-04-02_Address_Slang_Live_Stress_2026-04-02_12-57-27/response_audit.md index 1119514..4afb6d5 100644 --- a/docs/ADDRESS/runs/2026-04-02_Address_Slang_Live_Stress_2026-04-02_12-57-27/response_audit.md +++ b/docs/ADDRESS/runs/2026-04-02_Address_Slang_Live_Stress_2026-04-02_12-57-27/response_audit.md @@ -44,20 +44,20 @@ | S040 | True | ok_or_factual | factual | documents_forming_balance | None | бля, какие доки формируют остаток 60.01 на 2020-05-31 | Собран drilldown документов, формирующих остаток по счету на указанную дату. | | S041 | True | partial_non_blocking | partial_coverage | documents_forming_balance | empty_match | по счету 62.01 раскрой остаток документами на 2020-12-31 | В live-данных по текущему фильтру записи не найдены. | | S042 | True | ok_or_factual | factual | documents_forming_balance | None | из чего остаток по счету 51 на 2020-06-30 | Собран drilldown документов, формирующих остаток по счету на указанную дату. | -| S043 | True | ok_or_factual | factual | list_documents_by_contract | None | покажи документы по договору 15/24 за 2020 | Период сохранен. Глубина live-выборки автоматически расширена до 1000 строк. | -| S044 | True | ok_or_factual | factual | list_documents_by_contract | None | доки по дог. 15/24 за 2020 | Период сохранен. Глубина live-выборки автоматически расширена до 1000 строк. | -| S045 | True | ok_or_factual | factual | list_documents_by_contract | None | какие документы по контракту 15/24 | Собран список документов по договору (live address lane). | -| S046 | True | ok_or_factual | factual | list_documents_by_contract | None | docs by contract 15/24 year 2020 | Период сохранен. Глубина live-выборки автоматически расширена до 1000 строк. | -| S047 | True | ok_or_factual | factual | list_documents_by_contract | None | бля, покажи по договору 15/24 доки | Собран список документов по договору (live address lane). | -| S048 | True | ok_or_factual | factual | list_documents_by_contract | None | договор 15/24 документы | Собран список документов по договору (live address lane). | -| S049 | True | ok_or_factual | factual | list_documents_by_contract | None | плс документы договор №15/24 | Точный якорь не подтвердился в текущем окне live-данных; показаны ближайшие доступные документы/операции по выбранному типу. | -| S050 | True | ok_or_factual | factual | list_documents_by_contract | None | покеж документы по 15/24 | Собран список документов по договору (live address lane). | -| S051 | True | ok_or_factual | factual | bank_operations_by_contract | None | банковские операции по договору 15/24 | Собран список банковских операций по договору (live address lane). | -| S052 | True | ok_or_factual | factual | bank_operations_by_contract | None | платежи по договору 15/24 | Собран список банковских операций по договору (live address lane). | -| S053 | True | ok_or_factual | factual | bank_operations_by_contract | None | выписка по договору 15/24 | Собран список банковских операций по договору (live address lane). | -| S054 | True | ok_or_factual | factual | bank_operations_by_contract | None | bank ops by contract 15/24 | Точный якорь не подтвердился в текущем окне live-данных; показаны ближайшие доступные документы/операции по выбранному типу. | -| S055 | True | ok_or_factual | factual | bank_operations_by_contract | None | ёпт, покажи банк операции по дог 15/24 | Собран список банковских операций по договору (live address lane). | -| S056 | True | ok_or_factual | factual | bank_operations_by_contract | None | по контракту 15/24 платежки | Собран список банковских операций по договору (live address lane). | +| S043 | True | ok_or_factual | factual | list_documents_by_contract | None | покажи документы по договору 24/15 за 2020 | Период сохранен. Глубина live-выборки автоматически расширена до 1000 строк. | +| S044 | True | ok_or_factual | factual | list_documents_by_contract | None | доки по дог. 24/15 за 2020 | Период сохранен. Глубина live-выборки автоматически расширена до 1000 строк. | +| S045 | True | ok_or_factual | factual | list_documents_by_contract | None | какие документы по контракту 24/15 | Собран список документов по договору (live address lane). | +| S046 | True | ok_or_factual | factual | list_documents_by_contract | None | docs by contract 24/15 year 2020 | Период сохранен. Глубина live-выборки автоматически расширена до 1000 строк. | +| S047 | True | ok_or_factual | factual | list_documents_by_contract | None | бля, покажи по договору 24/15 доки | Собран список документов по договору (live address lane). | +| S048 | True | ok_or_factual | factual | list_documents_by_contract | None | договор 24/15 документы | Собран список документов по договору (live address lane). | +| S049 | True | ok_or_factual | factual | list_documents_by_contract | None | плс документы договор №24/15 | Точный якорь не подтвердился в текущем окне live-данных; показаны ближайшие доступные документы/операции по выбранному типу. | +| S050 | True | ok_or_factual | factual | list_documents_by_contract | None | покеж документы по 24/15 | Собран список документов по договору (live address lane). | +| S051 | True | ok_or_factual | factual | bank_operations_by_contract | None | банковские операции по договору 24/15 | Собран список банковских операций по договору (live address lane). | +| S052 | True | ok_or_factual | factual | bank_operations_by_contract | None | платежи по договору 24/15 | Собран список банковских операций по договору (live address lane). | +| S053 | True | ok_or_factual | factual | bank_operations_by_contract | None | выписка по договору 24/15 | Собран список банковских операций по договору (live address lane). | +| S054 | True | ok_or_factual | factual | bank_operations_by_contract | None | bank ops by contract 24/15 | Точный якорь не подтвердился в текущем окне live-данных; показаны ближайшие доступные документы/операции по выбранному типу. | +| S055 | True | ok_or_factual | factual | bank_operations_by_contract | None | ёпт, покажи банк операции по дог 24/15 | Собран список банковских операций по договору (live address lane). | +| S056 | True | ok_or_factual | factual | bank_operations_by_contract | None | по контракту 24/15 платежки | Собран список банковских операций по договору (live address lane). | | S057 | True | ok_or_factual | factual | account_balance_snapshot | None | покажи сальдо по счету 60 за 2020 | Адресный срез по счету собран (по движениям live MCP). | | S058 | True | ok_or_factual | factual | account_balance_snapshot | None | а теперь только май 2020 | Адресный срез по счету собран (по движениям live MCP). | | S059 | True | ok_or_factual | factual | account_balance_snapshot | None | ок, теперь 2020.05 | Адресный срез по счету собран (по движениям live MCP). | @@ -90,17 +90,17 @@ | X026 | True | partial_non_blocking | partial_coverage | documents_forming_balance | empty_match | раскидай остаток 62.01 по докам на 2020-12-31 | В live-данных по текущему фильтру записи не найдены. | | X027 | True | ok_or_factual | factual | documents_forming_balance | None | по счету 51 раскрой остаток документами на 2020-06-30 | Собран drilldown документов, формирующих остаток по счету на указанную дату. | | X028 | True | ok_or_factual | factual | documents_forming_balance | None | бля из чего состоит остаток по 60.01 на 2020-05-31 | Собран drilldown документов, формирующих остаток по счету на указанную дату. | -| X029 | True | ok_or_factual | factual | list_documents_by_contract | None | доки по договору 15/24 за 2020 | Период сохранен. Глубина live-выборки автоматически расширена до 1000 строк. | -| X030 | True | ok_or_factual | factual | list_documents_by_contract | None | покажи документы контракт 15/24 | Собран список документов по договору (live address lane). | -| X031 | True | ok_or_factual | factual | list_documents_by_contract | None | docs by contract 15/24 2020 | Период сохранен. Глубина live-выборки автоматически расширена до 1000 строк. | -| X032 | True | ok_or_factual | factual | list_documents_by_contract | None | по дог 15/24 какие документы | Собран список документов по договору (live address lane). | -| X033 | True | ok_or_factual | factual | list_documents_by_contract | None | договор 15/24 выведи доки | Точный якорь не подтвердился в текущем окне live-данных; показаны ближайшие доступные документы/операции по выбранному типу. | -| X034 | True | ok_or_factual | factual | list_documents_by_contract | None | нах покажи документы по 15/24 | Собран список документов по договору (live address lane). | -| X035 | True | ok_or_factual | factual | bank_operations_by_contract | None | банк операции по договору 15/24 | Собран список банковских операций по договору (live address lane). | -| X036 | True | ok_or_factual | factual | bank_operations_by_contract | None | платежки по дог 15/24 | Собран список банковских операций по договору (live address lane). | -| X037 | True | ok_or_factual | factual | bank_operations_by_contract | None | выписка по контракту 15/24 | Собран список банковских операций по договору (live address lane). | -| X038 | True | ok_or_factual | factual | bank_operations_by_contract | None | bank ops by contract 15/24 | Точный якорь не подтвердился в текущем окне live-данных; показаны ближайшие доступные документы/операции по выбранному типу. | -| X039 | True | ok_or_factual | factual | bank_operations_by_contract | None | покажи банк опер по дог 15/24 пж | Собран список банковских операций по договору (live address lane). | -| X040 | True | ok_or_factual | factual | bank_operations_by_contract | None | епт транзакции договор 15/24 | Собран список банковских операций по договору (live address lane). | +| X029 | True | ok_or_factual | factual | list_documents_by_contract | None | доки по договору 24/15 за 2020 | Период сохранен. Глубина live-выборки автоматически расширена до 1000 строк. | +| X030 | True | ok_or_factual | factual | list_documents_by_contract | None | покажи документы контракт 24/15 | Собран список документов по договору (live address lane). | +| X031 | True | ok_or_factual | factual | list_documents_by_contract | None | docs by contract 24/15 2020 | Период сохранен. Глубина live-выборки автоматически расширена до 1000 строк. | +| X032 | True | ok_or_factual | factual | list_documents_by_contract | None | по дог 24/15 какие документы | Собран список документов по договору (live address lane). | +| X033 | True | ok_or_factual | factual | list_documents_by_contract | None | договор 24/15 выведи доки | Точный якорь не подтвердился в текущем окне live-данных; показаны ближайшие доступные документы/операции по выбранному типу. | +| X034 | True | ok_or_factual | factual | list_documents_by_contract | None | нах покажи документы по 24/15 | Собран список документов по договору (live address lane). | +| X035 | True | ok_or_factual | factual | bank_operations_by_contract | None | банк операции по договору 24/15 | Собран список банковских операций по договору (live address lane). | +| X036 | True | ok_or_factual | factual | bank_operations_by_contract | None | платежки по дог 24/15 | Собран список банковских операций по договору (live address lane). | +| X037 | True | ok_or_factual | factual | bank_operations_by_contract | None | выписка по контракту 24/15 | Собран список банковских операций по договору (live address lane). | +| X038 | True | ok_or_factual | factual | bank_operations_by_contract | None | bank ops by contract 24/15 | Точный якорь не подтвердился в текущем окне live-данных; показаны ближайшие доступные документы/операции по выбранному типу. | +| X039 | True | ok_or_factual | factual | bank_operations_by_contract | None | покажи банк опер по дог 24/15 пж | Собран список банковских операций по договору (live address lane). | +| X040 | True | ok_or_factual | factual | bank_operations_by_contract | None | епт транзакции договор 24/15 | Собран список банковских операций по договору (live address lane). | | X041 | True | ok_or_factual | factual | account_balance_snapshot | None | покажи сальдо по счету 60 за 2020 | Адресный срез по счету собран (по движениям live MCP). | | X042 | True | ok_or_factual | factual | account_balance_snapshot | None | а теперь только май 2020 | Адресный срез по счету собран (по движениям live MCP). | diff --git a/llm_normalizer/backend/dist/config.js b/llm_normalizer/backend/dist/config.js index db4d1c4..6172551 100644 --- a/llm_normalizer/backend/dist/config.js +++ b/llm_normalizer/backend/dist/config.js @@ -50,7 +50,7 @@ exports.FEATURE_ASSISTANT_ADDRESS_QUERY_LLM_PREDECOMPOSE_V1 = toBooleanFlag(proc exports.FEATURE_ASSISTANT_ADDRESS_QUERY_LIVE_V1 = toBooleanFlag(process.env.FEATURE_ASSISTANT_ADDRESS_QUERY_LIVE_V1, true); exports.ASSISTANT_MCP_PROXY_URL = (process.env.ASSISTANT_MCP_PROXY_URL ?? "http://127.0.0.1:6003").replace(/\/+$/, ""); exports.ASSISTANT_MCP_CHANNEL = process.env.ASSISTANT_MCP_CHANNEL ?? "default"; -exports.ASSISTANT_MCP_TIMEOUT_MS = toNumberFlag(process.env.ASSISTANT_MCP_TIMEOUT_MS, 1200); +exports.ASSISTANT_MCP_TIMEOUT_MS = toNumberFlag(process.env.ASSISTANT_MCP_TIMEOUT_MS, 6000); exports.ASSISTANT_MCP_LIVE_LIMIT = Math.max(1, Math.trunc(toNumberFlag(process.env.ASSISTANT_MCP_LIVE_LIMIT, 24))); exports.DATA_DIR = process.env.DATA_DIR ?? path_1.default.resolve(exports.MODULE_ROOT, "data"); exports.TRACES_DIR = path_1.default.resolve(exports.DATA_DIR, "traces"); diff --git a/llm_normalizer/backend/dist/services/addressFilterExtractor.js b/llm_normalizer/backend/dist/services/addressFilterExtractor.js index d4703bb..6f7de18 100644 --- a/llm_normalizer/backend/dist/services/addressFilterExtractor.js +++ b/llm_normalizer/backend/dist/services/addressFilterExtractor.js @@ -378,7 +378,20 @@ function extractLooseByAnchorValue(text) { "документам", "докам", "взаиморасчетам", - "взаиморасчётам" + "взаиморасчётам", + "теперь", + "сейчас", + "вернись", + "вернуться", + "вернуть", + "раскрой", + "раскрыть", + "раскройте", + "нему", + "ней", + "ним", + "этому", + "тому" ]); if (stopWords.has(lowered)) { return undefined; @@ -466,6 +479,19 @@ function isLikelyCounterpartyToken(rawToken) { "show", "list", "please", + "теперь", + "сейчас", + "вернись", + "вернуться", + "вернуть", + "раскрой", + "раскрыть", + "раскройте", + "нему", + "ней", + "ним", + "этому", + "тому", "vse", "all", "kakie", diff --git a/llm_normalizer/backend/dist/services/addressIntentResolver.js b/llm_normalizer/backend/dist/services/addressIntentResolver.js index b34bfc8..17f371a 100644 --- a/llm_normalizer/backend/dist/services/addressIntentResolver.js +++ b/llm_normalizer/backend/dist/services/addressIntentResolver.js @@ -352,7 +352,7 @@ function hasContractAnchorSignal(text) { if (hasContractAnchorMention(text)) { return true; } - // Allow short forms like "15/24" for follow-up prompts if document/bank signal exists. + // Allow short forms like "19/15" for follow-up prompts if document/bank signal exists. return hasContractNumberLikeToken(text) && hasDocsOrBankSignal(text); } function hasLooseByAnchorMention(text) { diff --git a/llm_normalizer/backend/dist/services/address_runtime/decomposeStage.js b/llm_normalizer/backend/dist/services/address_runtime/decomposeStage.js index c95b54c..fb00048 100644 --- a/llm_normalizer/backend/dist/services/address_runtime/decomposeStage.js +++ b/llm_normalizer/backend/dist/services/address_runtime/decomposeStage.js @@ -24,6 +24,78 @@ function hasAllTimeHint(text) { function hasSameDateHint(text) { return /(?:на\s+ту\s+же\s+дат[ауеы]|на\s+эту\s+же\s+дат[ауеы]|та\s+же\s+дата|same\s+date|as\s+of\s+same\s+date|the\s+same\s+date)/iu.test(String(text ?? "")); } +function hasOpenItemsHint(text) { + return /(?:open\s+items|unclosed\s+items|хвост|висят|незакрыт|не\s+закрыт|открыт|долг|задолж|позиц)/iu.test(String(text ?? "")); +} +function hasDocumentSignal(text) { + return /(?:док(?:и|умент|ументы|ументов|ументами)|docs?|documents?)/iu.test(String(text ?? "")); +} +function hasBankSignal(text) { + return /(?:банк|банков|операц|опер|выписк|платеж|платёж|оплат|списан|поступлен|движени|bank|payment|payments|transaction|transactions|statement|wire)/iu.test(String(text ?? "")); +} +function hasAccountSignal(text) { + const normalized = String(text ?? ""); + return (/(?:сч[её]т|account)\D{0,12}\d{2}(?:[.,]\d{1,2})?/iu.test(normalized) || + /\b\d{2}(?:[.,]\d{1,2})\b/u.test(normalized) || + /(?:^|\s)по\s+\d{2}(?:[.,]\d{1,2})?(?=$|[\s,.;:!?])/iu.test(normalized)); +} +function hasExplicitCounterpartyMention(text) { + return /(?:контраг|counterparty|компан|организац|supplier|vendor|customer|client|partner|поставщик|клиент|покупател|партнер)/iu.test(String(text ?? "")); +} +function hasExplicitContractMention(text) { + return /(?:договор|контракт|contract|\bдог\.?\b)/iu.test(String(text ?? "")); +} +function hasContractNumberLikeToken(text) { + if (/(?:^|[\s([{])(?:№|#|n)\s*[a-zа-яё0-9][a-zа-яё0-9./_-]{1,}(?=$|[\s,.;:!?)\]}])/iu.test(String(text ?? ""))) { + return true; + } + return /\b\d{1,6}[./_-]\d{1,6}(?:[./_-]\d{1,6})?\b/iu.test(String(text ?? "")); +} +function hasExplicitLooseByAnchorToken(text) { + const match = String(text ?? "").match(/(?:^|\s)по\s+([a-zа-яё][a-zа-яё0-9._-]{1,})(?=[\s,.;:!?)]|$)/iu); + if (!match) { + return false; + } + const token = String(match[1] ?? "").trim().toLowerCase(); + if (!token) { + return false; + } + const pronounTokens = new Set([ + "нему", + "ней", + "ним", + "немуже", + "нейже", + "этому", + "этомуже", + "этому-то", + "тому", + "томуже", + "этому", + "этой", + "той" + ]); + const genericTokens = new Set([ + "контрагенту", + "контрагента", + "договору", + "договора", + "счету", + "счёту", + "дате", + "периоду" + ]); + return !pronounTokens.has(token) && !genericTokens.has(token); +} +function mapCounterpartyIntentToContractIntent(intent) { + if (intent === "list_documents_by_counterparty") { + return "list_documents_by_contract"; + } + if (intent === "bank_operations_by_counterparty") { + return "bank_operations_by_contract"; + } + return null; +} function hasAddressFollowupContextSignal(text) { const normalized = String(text ?? "").trim(); if (!normalized) { @@ -153,14 +225,76 @@ function deriveIntentWithFollowupContext(detectedIntent, userMessage, followupCo if (!followupContext || !followupContext.previous_intent) { return detectedIntent; } + const normalizedMessage = String(userMessage ?? ""); + const hasFollowupSignal = hasAddressFollowupContextSignal(normalizedMessage); + if (!hasFollowupSignal) { + return detectedIntent; + } + const previousIntent = followupContext.previous_intent; + const previousFilters = followupContext.previous_filters ?? {}; + const previousContract = toNonEmptyString(previousFilters.contract); + const previousCounterparty = toNonEmptyString(previousFilters.counterparty); + const previousContractFromAnchor = followupContext.previous_anchor_type === "contract" ? toNonEmptyString(followupContext.previous_anchor_value) : null; + const previousCounterpartyFromAnchor = followupContext.previous_anchor_type === "counterparty" ? toNonEmptyString(followupContext.previous_anchor_value) : null; + const hasPreviousContract = Boolean(previousContract ?? previousContractFromAnchor); + const hasPreviousCounterparty = Boolean(previousCounterparty ?? previousCounterpartyFromAnchor); + const hasAnyPartyAnchor = hasPreviousContract || hasPreviousCounterparty; + if (hasOpenItemsHint(normalizedMessage) && hasAnyPartyAnchor) { + return { + intent: "open_items_by_counterparty_or_contract", + confidence: "low", + reasons: [...detectedIntent.reasons, "open_items_from_followup_context"] + }; + } + const previousIsBalanceFamily = previousIntent === "account_balance_snapshot" || previousIntent === "documents_forming_balance"; + if (previousIsBalanceFamily && + hasAccountSignal(normalizedMessage) && + (detectedIntent.intent === "unknown" || + detectedIntent.intent === "list_documents_by_counterparty" || + detectedIntent.intent === "bank_operations_by_counterparty")) { + const preferDocumentsForming = hasDocumentSignal(normalizedMessage) && + /(?:раскрой|раскры|формир|документами|по\s+документ)/iu.test(normalizedMessage); + return { + intent: preferDocumentsForming ? "documents_forming_balance" : "account_balance_snapshot", + confidence: "low", + reasons: [...detectedIntent.reasons, "intent_adjusted_to_balance_followup_context"] + }; + } + if (hasPreviousContract) { + if (detectedIntent.intent === "unknown") { + if (hasBankSignal(normalizedMessage)) { + return { + intent: "bank_operations_by_contract", + confidence: "low", + reasons: [...detectedIntent.reasons, "intent_adjusted_to_contract_followup_context"] + }; + } + if (hasDocumentSignal(normalizedMessage)) { + return { + intent: "list_documents_by_contract", + confidence: "low", + reasons: [...detectedIntent.reasons, "intent_adjusted_to_contract_followup_context"] + }; + } + } + const mappedIntent = mapCounterpartyIntentToContractIntent(detectedIntent.intent); + if (mappedIntent) { + const explicitCounterpartyTarget = hasExplicitCounterpartyMention(normalizedMessage) || hasExplicitLooseByAnchorToken(normalizedMessage); + const explicitContractTarget = hasExplicitContractMention(normalizedMessage) || hasContractNumberLikeToken(normalizedMessage); + if (!explicitCounterpartyTarget || explicitContractTarget) { + return { + intent: mappedIntent, + confidence: "low", + reasons: [...detectedIntent.reasons, "intent_adjusted_to_contract_followup_context"] + }; + } + } + } if (detectedIntent.intent !== "unknown") { return detectedIntent; } - if (!hasAddressFollowupContextSignal(userMessage)) { - return detectedIntent; - } return { - intent: followupContext.previous_intent, + intent: previousIntent, confidence: "low", reasons: [...detectedIntent.reasons, "intent_from_followup_context"] }; diff --git a/llm_normalizer/backend/src/config.ts b/llm_normalizer/backend/src/config.ts index 4520520..08b40f2 100644 --- a/llm_normalizer/backend/src/config.ts +++ b/llm_normalizer/backend/src/config.ts @@ -108,7 +108,7 @@ export const ASSISTANT_MCP_PROXY_URL = (process.env.ASSISTANT_MCP_PROXY_URL ?? " "" ); export const ASSISTANT_MCP_CHANNEL = process.env.ASSISTANT_MCP_CHANNEL ?? "default"; -export const ASSISTANT_MCP_TIMEOUT_MS = toNumberFlag(process.env.ASSISTANT_MCP_TIMEOUT_MS, 1200); +export const ASSISTANT_MCP_TIMEOUT_MS = toNumberFlag(process.env.ASSISTANT_MCP_TIMEOUT_MS, 6000); export const ASSISTANT_MCP_LIVE_LIMIT = Math.max(1, Math.trunc(toNumberFlag(process.env.ASSISTANT_MCP_LIVE_LIMIT, 24))); export const DATA_DIR = process.env.DATA_DIR ?? path.resolve(MODULE_ROOT, "data"); diff --git a/llm_normalizer/backend/src/services/addressFilterExtractor.ts b/llm_normalizer/backend/src/services/addressFilterExtractor.ts index aa39bde..87846c7 100644 --- a/llm_normalizer/backend/src/services/addressFilterExtractor.ts +++ b/llm_normalizer/backend/src/services/addressFilterExtractor.ts @@ -415,7 +415,20 @@ function extractLooseByAnchorValue(text: string): string | undefined { "документам", "докам", "взаиморасчетам", - "взаиморасчётам" + "взаиморасчётам", + "теперь", + "сейчас", + "вернись", + "вернуться", + "вернуть", + "раскрой", + "раскрыть", + "раскройте", + "нему", + "ней", + "ним", + "этому", + "тому" ]); if (stopWords.has(lowered)) { return undefined; @@ -506,6 +519,19 @@ function isLikelyCounterpartyToken(rawToken: string): boolean { "show", "list", "please", + "теперь", + "сейчас", + "вернись", + "вернуться", + "вернуть", + "раскрой", + "раскрыть", + "раскройте", + "нему", + "ней", + "ним", + "этому", + "тому", "vse", "all", "kakie", diff --git a/llm_normalizer/backend/src/services/addressIntentResolver.ts b/llm_normalizer/backend/src/services/addressIntentResolver.ts index fe0fe9f..be97bfe 100644 --- a/llm_normalizer/backend/src/services/addressIntentResolver.ts +++ b/llm_normalizer/backend/src/services/addressIntentResolver.ts @@ -385,7 +385,7 @@ function hasContractAnchorSignal(text: string): boolean { if (hasContractAnchorMention(text)) { return true; } - // Allow short forms like "15/24" for follow-up prompts if document/bank signal exists. + // Allow short forms like "19/15" for follow-up prompts if document/bank signal exists. return hasContractNumberLikeToken(text) && hasDocsOrBankSignal(text); } @@ -630,3 +630,4 @@ export function resolveAddressIntent(userMessage: string): AddressIntentResoluti reasons: ["intent_not_supported_in_v1"] }; } + diff --git a/llm_normalizer/backend/src/services/address_runtime/decomposeStage.ts b/llm_normalizer/backend/src/services/address_runtime/decomposeStage.ts index 13586e9..d90189d 100644 --- a/llm_normalizer/backend/src/services/address_runtime/decomposeStage.ts +++ b/llm_normalizer/backend/src/services/address_runtime/decomposeStage.ts @@ -57,6 +57,93 @@ function hasSameDateHint(text: string): boolean { ); } +function hasOpenItemsHint(text: string): boolean { + return /(?:open\s+items|unclosed\s+items|хвост|висят|незакрыт|не\s+закрыт|открыт|долг|задолж|позиц)/iu.test(String(text ?? "")); +} + +function hasDocumentSignal(text: string): boolean { + return /(?:док(?:и|умент|ументы|ументов|ументами)|docs?|documents?)/iu.test(String(text ?? "")); +} + +function hasBankSignal(text: string): boolean { + return /(?:банк|банков|операц|опер|выписк|платеж|платёж|оплат|списан|поступлен|движени|bank|payment|payments|transaction|transactions|statement|wire)/iu.test( + String(text ?? "") + ); +} + +function hasAccountSignal(text: string): boolean { + const normalized = String(text ?? ""); + return ( + /(?:сч[её]т|account)\D{0,12}\d{2}(?:[.,]\d{1,2})?/iu.test(normalized) || + /\b\d{2}(?:[.,]\d{1,2})\b/u.test(normalized) || + /(?:^|\s)по\s+\d{2}(?:[.,]\d{1,2})?(?=$|[\s,.;:!?])/iu.test(normalized) + ); +} + +function hasExplicitCounterpartyMention(text: string): boolean { + return /(?:контраг|counterparty|компан|организац|supplier|vendor|customer|client|partner|поставщик|клиент|покупател|партнер)/iu.test( + String(text ?? "") + ); +} + +function hasExplicitContractMention(text: string): boolean { + return /(?:договор|контракт|contract|\bдог\.?\b)/iu.test(String(text ?? "")); +} + +function hasContractNumberLikeToken(text: string): boolean { + if (/(?:^|[\s([{])(?:№|#|n)\s*[a-zа-яё0-9][a-zа-яё0-9./_-]{1,}(?=$|[\s,.;:!?)\]}])/iu.test(String(text ?? ""))) { + return true; + } + return /\b\d{1,6}[./_-]\d{1,6}(?:[./_-]\d{1,6})?\b/iu.test(String(text ?? "")); +} + +function hasExplicitLooseByAnchorToken(text: string): boolean { + const match = String(text ?? "").match(/(?:^|\s)по\s+([a-zа-яё][a-zа-яё0-9._-]{1,})(?=[\s,.;:!?)]|$)/iu); + if (!match) { + return false; + } + const token = String(match[1] ?? "").trim().toLowerCase(); + if (!token) { + return false; + } + const pronounTokens = new Set([ + "нему", + "ней", + "ним", + "немуже", + "нейже", + "этому", + "этомуже", + "этому-то", + "тому", + "томуже", + "этому", + "этой", + "той" + ]); + const genericTokens = new Set([ + "контрагенту", + "контрагента", + "договору", + "договора", + "счету", + "счёту", + "дате", + "периоду" + ]); + return !pronounTokens.has(token) && !genericTokens.has(token); +} + +function mapCounterpartyIntentToContractIntent(intent: AddressIntent): AddressIntent | null { + if (intent === "list_documents_by_counterparty") { + return "list_documents_by_contract"; + } + if (intent === "bank_operations_by_counterparty") { + return "bank_operations_by_contract"; + } + return null; +} + export function hasAddressFollowupContextSignal(text: string): boolean { const normalized = String(text ?? "").trim(); if (!normalized) { @@ -213,14 +300,88 @@ function deriveIntentWithFollowupContext( if (!followupContext || !followupContext.previous_intent) { return detectedIntent; } + + const normalizedMessage = String(userMessage ?? ""); + const hasFollowupSignal = hasAddressFollowupContextSignal(normalizedMessage); + if (!hasFollowupSignal) { + return detectedIntent; + } + const previousIntent = followupContext.previous_intent; + const previousFilters = followupContext.previous_filters ?? {}; + const previousContract = toNonEmptyString(previousFilters.contract); + const previousCounterparty = toNonEmptyString(previousFilters.counterparty); + const previousContractFromAnchor = + followupContext.previous_anchor_type === "contract" ? toNonEmptyString(followupContext.previous_anchor_value) : null; + const previousCounterpartyFromAnchor = + followupContext.previous_anchor_type === "counterparty" ? toNonEmptyString(followupContext.previous_anchor_value) : null; + const hasPreviousContract = Boolean(previousContract ?? previousContractFromAnchor); + const hasPreviousCounterparty = Boolean(previousCounterparty ?? previousCounterpartyFromAnchor); + const hasAnyPartyAnchor = hasPreviousContract || hasPreviousCounterparty; + + if (hasOpenItemsHint(normalizedMessage) && hasAnyPartyAnchor) { + return { + intent: "open_items_by_counterparty_or_contract", + confidence: "low", + reasons: [...detectedIntent.reasons, "open_items_from_followup_context"] + }; + } + + const previousIsBalanceFamily = previousIntent === "account_balance_snapshot" || previousIntent === "documents_forming_balance"; + if ( + previousIsBalanceFamily && + hasAccountSignal(normalizedMessage) && + (detectedIntent.intent === "unknown" || + detectedIntent.intent === "list_documents_by_counterparty" || + detectedIntent.intent === "bank_operations_by_counterparty") + ) { + const preferDocumentsForming = + hasDocumentSignal(normalizedMessage) && + /(?:раскрой|раскры|формир|документами|по\s+документ)/iu.test(normalizedMessage); + return { + intent: preferDocumentsForming ? "documents_forming_balance" : "account_balance_snapshot", + confidence: "low", + reasons: [...detectedIntent.reasons, "intent_adjusted_to_balance_followup_context"] + }; + } + + if (hasPreviousContract) { + if (detectedIntent.intent === "unknown") { + if (hasBankSignal(normalizedMessage)) { + return { + intent: "bank_operations_by_contract", + confidence: "low", + reasons: [...detectedIntent.reasons, "intent_adjusted_to_contract_followup_context"] + }; + } + if (hasDocumentSignal(normalizedMessage)) { + return { + intent: "list_documents_by_contract", + confidence: "low", + reasons: [...detectedIntent.reasons, "intent_adjusted_to_contract_followup_context"] + }; + } + } + + const mappedIntent = mapCounterpartyIntentToContractIntent(detectedIntent.intent); + if (mappedIntent) { + const explicitCounterpartyTarget = hasExplicitCounterpartyMention(normalizedMessage) || hasExplicitLooseByAnchorToken(normalizedMessage); + const explicitContractTarget = hasExplicitContractMention(normalizedMessage) || hasContractNumberLikeToken(normalizedMessage); + if (!explicitCounterpartyTarget || explicitContractTarget) { + return { + intent: mappedIntent, + confidence: "low", + reasons: [...detectedIntent.reasons, "intent_adjusted_to_contract_followup_context"] + }; + } + } + } + if (detectedIntent.intent !== "unknown") { return detectedIntent; } - if (!hasAddressFollowupContextSignal(userMessage)) { - return detectedIntent; - } + return { - intent: followupContext.previous_intent, + intent: previousIntent, confidence: "low", reasons: [...detectedIntent.reasons, "intent_from_followup_context"] }; diff --git a/llm_normalizer/backend/tests/addressQueryRuntimeM23.test.ts b/llm_normalizer/backend/tests/addressQueryRuntimeM23.test.ts index 1abd6ef..a438078 100644 --- a/llm_normalizer/backend/tests/addressQueryRuntimeM23.test.ts +++ b/llm_normalizer/backend/tests/addressQueryRuntimeM23.test.ts @@ -119,22 +119,22 @@ describe("address intent resolver expansion (M2.3a)", () => { }); it("resolves documents by contract intent", () => { - const result = resolveAddressIntent("Покажи документы по договору 15/24 за 2020"); + const result = resolveAddressIntent("Покажи документы по договору 19/15 за 2020"); expect(result.intent).toBe("list_documents_by_contract"); }); it("resolves bank operations by contract intent", () => { - const result = resolveAddressIntent("Покажи банковские операции по договору 15/24"); + const result = resolveAddressIntent("Покажи банковские операции по договору 19/15"); expect(result.intent).toBe("bank_operations_by_contract"); }); it("resolves shorthand bank-by-contract slang intent", () => { - const result = resolveAddressIntent("покажи банк опер по дог 15/24 пж"); + const result = resolveAddressIntent("покажи банк опер по дог 19/15 пж"); expect(result.intent).toBe("bank_operations_by_contract"); }); it("resolves debt-by-contract query to open items intent", () => { - const result = resolveAddressIntent("Есть ли долг по договору 15/24 на 2020-07-31"); + const result = resolveAddressIntent("Есть ли долг по договору 19/15 на 2020-07-31"); expect(result.intent).toBe("open_items_by_counterparty_or_contract"); }); @@ -145,7 +145,7 @@ describe("address intent resolver expansion (M2.3a)", () => { it("resolves bank operations by contract for normalized phrase with linked contract wording", () => { const result = resolveAddressIntent( - "Показать банковские операции (счета 51, 60, 62) связанные с договором 15/24." + "Показать банковские операции (счета 51, 60, 62) связанные с договором 19/15." ); expect(result.intent).toBe("bank_operations_by_contract"); }); @@ -332,6 +332,17 @@ describe("address filter extraction for balance drilldown", () => { expect(result.warnings).toContain("account_anchor_derived_from_heuristic_token"); }); + it("does not derive counterparty from follow-up filler token in bank phrase", () => { + const result = extractAddressFilters("а теперь банковские операции", "bank_operations_by_counterparty"); + expect(result.extracted_filters.counterparty).toBeUndefined(); + }); + + it("keeps compact account for docs-forming follow-up and avoids fake counterparty anchor", () => { + const result = extractAddressFilters("раскрой 62.01 документами на ту же дату", "documents_forming_balance"); + expect(result.extracted_filters.account).toBe("62.01"); + expect(result.extracted_filters.counterparty).toBeUndefined(); + }); + it("drops accidental account for non-account intent without explicit account cue", () => { const result = extractAddressFilters("покажи банк операции по свк за 2020", "bank_operations_by_counterparty"); expect(result.extracted_filters.account).toBeUndefined(); @@ -457,10 +468,10 @@ describe("address filter extraction for balance drilldown", () => { it("extracts contract and year period for contract document list", () => { const result = extractAddressFilters( - "Покажи документы по договору 15/24 за 2020 год", + "Покажи документы по договору 19/15 за 2020 год", "list_documents_by_contract" ); - expect(result.extracted_filters.contract).toBe("15/24"); + expect(result.extracted_filters.contract).toBe("19/15"); expect(result.extracted_filters.period_from).toBe("2020-01-01"); expect(result.extracted_filters.period_to).toBe("2020-12-31"); expect(result.warnings).toContain("period_derived_from_year_phrase"); @@ -478,10 +489,10 @@ describe("address filter extraction for balance drilldown", () => { it("does not force 90-day default window for by-contract query without explicit period", () => { const result = extractAddressFilters( - "Покажи документы по договору 15/24", + "Покажи документы по договору 19/15", "list_documents_by_contract" ); - expect(result.extracted_filters.contract).toBe("15/24"); + expect(result.extracted_filters.contract).toBe("19/15"); expect(result.extracted_filters.period_from).toBeUndefined(); expect(result.extracted_filters.period_to).toBeUndefined(); expect(result.warnings).not.toContain("period_defaulted_last_90_days"); @@ -489,10 +500,10 @@ describe("address filter extraction for balance drilldown", () => { it("extracts heuristic contract token for noisy contract phrase", () => { const result = extractAddressFilters( - "доки 15/24 за 2020", + "доки 19/15 за 2020", "list_documents_by_contract" ); - expect(result.extracted_filters.contract).toBe("15/24"); + expect(result.extracted_filters.contract).toBe("19/15"); expect(result.warnings).toContain("contract_anchor_derived_from_heuristic_token"); expect(result.extracted_filters.period_from).toBe("2020-01-01"); expect(result.extracted_filters.period_to).toBe("2020-12-31"); @@ -500,20 +511,20 @@ describe("address filter extraction for balance drilldown", () => { it("trims english year tail from contract anchor", () => { const result = extractAddressFilters( - "docs by contract 15/24 year 2020", + "docs by contract 19/15 year 2020", "list_documents_by_contract" ); - expect(result.extracted_filters.contract).toBe("15/24"); + expect(result.extracted_filters.contract).toBe("19/15"); expect(result.extracted_filters.period_from).toBe("2020-01-01"); expect(result.extracted_filters.period_to).toBe("2020-12-31"); }); it("trims trailing separated year from contract anchor", () => { const result = extractAddressFilters( - "docs by contract 15/24 2020", + "docs by contract 19/15 2020", "list_documents_by_contract" ); - expect(result.extracted_filters.contract).toBe("15/24"); + expect(result.extracted_filters.contract).toBe("19/15"); expect(result.extracted_filters.period_from).toBe("2020-01-01"); expect(result.extracted_filters.period_to).toBe("2020-12-31"); }); @@ -567,7 +578,7 @@ describe("address query limited taxonomy and stage diagnostics", () => { it("does not return fallback factual rows for unmatched open-items contract anchor", async () => { const service = new AddressQueryService(); - const result = await service.tryHandle("Покажи открытые позиции по договору 15/24"); + const result = await service.tryHandle("Покажи открытые позиции по договору 9999/NOPE"); expect(result?.handled).toBe(true); expect(result?.response_type).toBe("LIMITED_WITH_REASON"); expect(result?.reply_type).toBe("partial_coverage"); @@ -579,7 +590,7 @@ describe("address query limited taxonomy and stage diagnostics", () => { it("routes contract document list intent into address recipe", async () => { const service = new AddressQueryService(); - const result = await service.tryHandle("show documents by contract 15/24"); + const result = await service.tryHandle("show documents by contract 19/15"); expect(result?.handled).toBe(true); expect(result?.debug.detected_intent).toBe("list_documents_by_contract"); expect(result?.debug.selected_recipe).toBe("address_documents_by_contract_v1"); @@ -589,7 +600,7 @@ describe("address query limited taxonomy and stage diagnostics", () => { it("routes bank operations by contract intent into address recipe", async () => { const service = new AddressQueryService(); - const result = await service.tryHandle("Покажи банковские операции по договору 15/24"); + const result = await service.tryHandle("Покажи банковские операции по договору 19/15"); expect(result?.handled).toBe(true); expect(result?.debug.detected_intent).toBe("bank_operations_by_contract"); expect(result?.debug.selected_recipe).toBe("address_bank_operations_by_contract_v1"); @@ -716,6 +727,59 @@ describe("address decompose stage follow-up carryover", () => { expect(result?.baseReasons).toContain("address_followup_context_applied"); }); + it("keeps contract scope when follow-up asks for bank operations without explicit anchor", () => { + const result = runAddressDecomposeStage("а теперь банковские операции", { + previous_intent: "list_documents_by_contract", + previous_filters: { + contract: "19/15", + period_from: "2020-01-01", + period_to: "2020-12-31" + }, + previous_anchor_type: "contract", + previous_anchor_value: "19/15" + }); + expect(result).not.toBeNull(); + expect(result?.intent.intent).toBe("bank_operations_by_contract"); + expect(result?.filters.extracted_filters.contract).toBe("19/15"); + expect(result?.baseReasons).toContain("intent_adjusted_to_contract_followup_context"); + }); + + it("promotes open-items intent from follow-up wording with inherited contract anchor", () => { + const result = runAddressDecomposeStage("а теперь открытые позиции по нему", { + previous_intent: "bank_operations_by_contract", + previous_filters: { + contract: "19/15", + period_from: "2020-01-01", + period_to: "2020-12-31" + }, + previous_anchor_type: "contract", + previous_anchor_value: "19/15" + }); + expect(result).not.toBeNull(); + expect(result?.intent.intent).toBe("open_items_by_counterparty_or_contract"); + expect(result?.filters.extracted_filters.contract).toBe("19/15"); + expect(result?.baseReasons).toContain("open_items_from_followup_context"); + }); + + it("keeps balance family in follow-up when user gives compact account token", () => { + const result = runAddressDecomposeStage("вернись на 2020-12-31 по 60", { + previous_intent: "documents_forming_balance", + previous_filters: { + account: "62", + as_of_date: "2020-05-31", + period_from: "2020-05-01", + period_to: "2020-05-31" + }, + previous_anchor_type: "account", + previous_anchor_value: "62" + }); + expect(result).not.toBeNull(); + expect(result?.intent.intent).toBe("account_balance_snapshot"); + expect(result?.filters.extracted_filters.account).toBe("60"); + expect(result?.filters.extracted_filters.as_of_date).toBe("2020-12-31"); + expect(result?.baseReasons).toContain("intent_adjusted_to_balance_followup_context"); + }); + it("does not downgrade inherited follow-up anchor to missing_anchor when period has no rows", async () => { const service = new AddressQueryService(); const seed = await service.tryHandle("покажи документы по свк за 2020"); @@ -785,12 +849,12 @@ describe("address recipe catalog counterparty filtering", () => { it("allows extended limit for open-items by contract intent", () => { const selected = selectAddressRecipe("open_items_by_counterparty_or_contract", { - contract: "15/24", + contract: "19/15", limit: 1000 }); expect(selected.selected_recipe).toBeTruthy(); const plan = buildAddressRecipePlan(selected.selected_recipe!, { - contract: "15/24", + contract: "19/15", limit: 1000 }); @@ -837,3 +901,4 @@ describe("address recipe catalog counterparty filtering", () => { expect(plan.query).toContain("ПОДОБНО \"60.1%\""); }); }); + diff --git a/llm_normalizer/backend/tests/assistantAddressLlmPredecompose.test.ts b/llm_normalizer/backend/tests/assistantAddressLlmPredecompose.test.ts index fdda671..322bebb 100644 --- a/llm_normalizer/backend/tests/assistantAddressLlmPredecompose.test.ts +++ b/llm_normalizer/backend/tests/assistantAddressLlmPredecompose.test.ts @@ -1,4 +1,4 @@ -import { describe, expect, it, vi } from "vitest"; +import { describe, expect, it, vi } from "vitest"; import { AssistantService } from "../src/services/assistantService"; import { AssistantSessionStore } from "../src/services/assistantSessionStore"; @@ -231,7 +231,7 @@ describe("assistant address llm pre-decompose candidate preference", () => { ok: true, normalized: { schema_version: "normalized_query_v2_0_2", - user_message_raw: "Покажи документы по договору 15/24 за 2020", + user_message_raw: "Покажи документы по договору 19/15 за 2020", message_in_scope: true, scope_confidence: "medium", contains_multiple_tasks: false, @@ -258,7 +258,7 @@ describe("assistant address llm pre-decompose candidate preference", () => { const response = await service.handleMessage({ session_id: `asst-predecompose-contract-docs-${Date.now()}`, - user_message: "Покажи документы по договору 15/24 за 2020", + user_message: "Покажи документы по договору 19/15 за 2020", llmProvider: "local", useMock: false } as any); @@ -266,7 +266,7 @@ describe("assistant address llm pre-decompose candidate preference", () => { expect(response.ok).toBe(true); expect(response.reply_type).toBe("factual"); expect(calls).toHaveLength(1); - expect(calls[0].message).toBe("документы по договору 15/24 за 2020 год"); + expect(calls[0].message).toBe("документы по договору 19/15 за 2020 год"); expect(response.debug?.llm_decomposition_applied).toBe(true); expect(response.debug?.llm_decomposition_reason).toBe("fallback_rule_applied_after_llm"); expect(response.debug?.fallback_rule_hit).toBe("documents_contract_year_rewrite"); @@ -287,7 +287,7 @@ describe("assistant address llm pre-decompose candidate preference", () => { ok: true, normalized: { schema_version: "normalized_query_v2_0_2", - user_message_raw: "Покажи банковские операции по договору 15/24", + user_message_raw: "Покажи банковские операции по договору 19/15", message_in_scope: true, scope_confidence: "medium", contains_multiple_tasks: false, @@ -314,7 +314,7 @@ describe("assistant address llm pre-decompose candidate preference", () => { const response = await service.handleMessage({ session_id: `asst-predecompose-contract-bank-${Date.now()}`, - user_message: "Покажи банковские операции по договору 15/24", + user_message: "Покажи банковские операции по договору 19/15", llmProvider: "local", useMock: false } as any); @@ -322,7 +322,7 @@ describe("assistant address llm pre-decompose candidate preference", () => { expect(response.ok).toBe(true); expect(response.reply_type).toBe("factual"); expect(calls).toHaveLength(1); - expect(calls[0].message).toBe("банковские операции по договору 15/24"); + expect(calls[0].message).toBe("банковские операции по договору 19/15"); expect(response.debug?.llm_decomposition_applied).toBe(true); expect(response.debug?.llm_decomposition_reason).toBe("fallback_rule_applied_after_llm"); expect(response.debug?.fallback_rule_hit).toBe("bank_operations_contract_rewrite"); @@ -509,7 +509,7 @@ describe("assistant address llm pre-decompose candidate preference", () => { ok: true, normalized: { schema_version: "normalized_query_v2_0_2", - user_message_raw: "покажи банк опер по дог 15/24 пж", + user_message_raw: "покажи банк опер по дог 19/15 пж", message_in_scope: true, scope_confidence: "medium", contains_multiple_tasks: false, @@ -536,7 +536,7 @@ describe("assistant address llm pre-decompose candidate preference", () => { const response = await service.handleMessage({ session_id: `asst-predecompose-bank-contract-slang-${Date.now()}`, - user_message: "покажи банк опер по дог 15/24 пж", + user_message: "покажи банк опер по дог 19/15 пж", llmProvider: "local", useMock: false } as any); @@ -544,7 +544,7 @@ describe("assistant address llm pre-decompose candidate preference", () => { expect(response.ok).toBe(true); expect(response.reply_type).toBe("factual"); expect(calls).toHaveLength(1); - expect(calls[0].message).toBe("банковские операции по договору 15/24"); + expect(calls[0].message).toBe("банковские операции по договору 19/15"); expect(response.debug?.llm_decomposition_reason).toBe("fallback_rule_applied_after_llm"); expect(response.debug?.fallback_rule_hit).toBe("bank_operations_contract_rewrite"); }); @@ -715,3 +715,4 @@ describe("assistant address llm pre-decompose candidate preference", () => { expect(calls[0].message.toLowerCase()).toContain("договору 1-пм/2020"); }); }); +