АДРЕСНЫЙ РЕЖИМ -ADDRESS: стабилизация контекстных цепочек и live-якорей (договор 19/15)

This commit is contained in:
dctouch 2026-04-02 15:03:53 +03:00
parent cc7fcabf05
commit 4cb9fc7021
90 changed files with 15954 additions and 1561 deletions

View File

@ -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

94
docs/ADDRESS/TEMP/1.txt Normal file
View File

@ -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

View File

@ -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`, чтобы это можно было сразу использовать для генерации вариаций и тест-кейсов.

View File

@ -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.

View File

@ -1,7 +0,0 @@
[
"Покажи открытые позиции по договору 15/24",
"Есть ли незакрытые позиции по договору 15/24 на 2020-12",
"Есть ли незакрытые позиции по договору 15/24 на 2020-11",
"Есть ли незакрытые позиции по договору 15/24 на 2022-12",
"Есть ли незакрытые позиции по договору 15/24 на 2014-12-31"
]

View File

@ -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"
]

View File

@ -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"
}
]

View File

@ -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" }
]

View File

@ -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"
}
]

View File

@ -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" }
]

View File

@ -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" }
]

View File

@ -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"
}
]

View File

@ -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"
}
]

View File

@ -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",

View File

@ -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,

View File

@ -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.

View File

@ -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

View File

@ -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,

View File

@ -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",

View File

@ -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

View File

@ -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-данных; показаны ближайшие доступные документы/операции по выбранному типу. |

View File

@ -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
}
}
}

View File

@ -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

View File

@ -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
}
]

View File

@ -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-данных; показаны ближайшие доступные документы/операции по выбранному типу. |

View File

@ -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
}
}
}

View File

@ -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

File diff suppressed because one or more lines are too long

View File

@ -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-данных; показаны ближайшие доступные документы/операции по выбранному типу. |

View File

@ -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
}
}
}

View File

@ -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

View File

@ -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,

View File

@ -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,

View File

@ -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,

View File

@ -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,

View File

@ -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,

View File

@ -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,

View File

@ -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,

View File

@ -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,

View File

@ -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

View File

@ -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,

View File

@ -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

View File

@ -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

View File

@ -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,

View File

@ -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,

View File

@ -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,

View File

@ -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,

View File

@ -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,

View File

@ -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,

View File

@ -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,

View File

@ -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,

View File

@ -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,

View File

@ -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,

View File

@ -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,

View File

@ -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,

View File

@ -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,

View File

@ -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). |

View File

@ -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,

View File

@ -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,

View File

@ -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). |

View File

@ -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,

View File

@ -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,

View File

@ -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). |

View File

@ -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,

View File

@ -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). |

View File

@ -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,

View File

@ -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). |

View File

@ -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,

View File

@ -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). |

View File

@ -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,

View File

@ -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). |

View File

@ -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). |

View File

@ -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");

View File

@ -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",

View File

@ -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) {

View File

@ -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"]
};

View File

@ -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");

View File

@ -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",

View File

@ -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"]
};
}

View File

@ -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"]
};

View File

@ -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%\"");
});
});

View File

@ -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");
});
});