АДРЕСНЫЙ РЕЖИМ -ADDRESS:Шаг 1 - ЛЛМ ФЕРСТ + feat(address): стабилизация wave1 dynamic resolver контрагентов, follow-up carryover и актуализация docs/tests

This commit is contained in:
dctouch 2026-04-02 23:11:49 +03:00
parent 53716e548e
commit 88094c09f8
243 changed files with 94296 additions and 181 deletions

747
docs/ADDRESS/000.txt Normal file
View File

@ -0,0 +1,747 @@
# Assistant conversation export
session_id: asst-3KQrGYhD0w
export_mode: technical
exported_at: 2026-04-02T16:09:54.950Z
## 1. user
message_id: msg-aZNISHU00l
created_at: 2026-04-02T16:04:35.848Z
reply_type: n/a
За какие годы в базе есть данные?
## 2. assistant
message_id: msg-EKRX285J1Z
created_at: 2026-04-02T16:04:36.657Z
reply_type: factual
trace_id: address-lUBiGVp1LX
Профиль периодов базы собран (movement-based aggregate).
Строк агрегата: 20.
Покрытие по датам: 2014-05-27T12:00:00Z.. 2030-08-03T12:00:00Z.
Самый активный месяц по операциям: 2015-02 (1249).
Топ месяцев по операциям:
1. 2015-02: 1249
2. 2015-01: 924
3. 2015-12: 225
4. 2015-09: 162
5. 2015-03: 110
### technical_debug_payload_json
```json
{
"trace_id": "address-lUBiGVp1LX",
"prompt_version": "address_query_runtime_v1",
"schema_version": "address_query_runtime_v1",
"fallback_type": "none",
"route_summary": null,
"fragments": [],
"requirements_extracted": [],
"coverage_report": {
"requirements_total": 0,
"requirements_covered": 0,
"requirements_uncovered": [],
"requirements_partially_covered": [],
"clarification_needed_for": [],
"out_of_scope_requirements": []
},
"routes": [],
"retrieval_status": [],
"retrieval_results": [],
"answer_grounding_check": {
"status": "grounded",
"route_subject_match": true,
"missing_requirements": [],
"reasons": [
"management_profile_signal_detected",
"shape_not_detected",
"period_coverage_profile_signal_detected"
],
"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": "period_coverage_profile",
"detected_intent_confidence": "high",
"extracted_filters": {
"sort": "period_desc",
"limit": 20
},
"missing_required_filters": [],
"selected_recipe": "address_period_coverage_profile_v1",
"mcp_call_status_legacy": "matched_non_empty",
"account_scope_mode": "preferred",
"account_scope_fallback_applied": false,
"anchor_type": "unknown",
"anchor_value_raw": null,
"anchor_value_resolved": null,
"resolver_confidence": "low",
"ambiguity_count": 0,
"match_failure_stage": "none",
"match_failure_reason": null,
"mcp_call_status": "matched_non_empty",
"rows_fetched": 20,
"raw_rows_received": 20,
"rows_after_account_scope": 20,
"rows_after_recipe_filter": 20,
"rows_materialized": 20,
"rows_matched": 20,
"raw_row_keys_sample": [
"Период",
"Регистратор",
"СчетДт",
"СчетКт",
"Сумма",
"Period",
"Registrator",
"Amount"
],
"materialization_drop_reason": "none",
"account_token_raw": null,
"account_token_normalized": null,
"account_scope_fields_checked": [
"account_dt",
"account_kt",
"registrator",
"analytics"
],
"account_scope_match_strategy": "account_code_regex_plus_alias_map_v1",
"account_scope_drop_reason": "not_applicable",
"runtime_readiness": "LIVE_QUERYABLE_WITH_LIMITS",
"limited_reason_category": null,
"response_type": "FACTUAL_SUMMARY",
"execution_lane": "address_query",
"llm_decomposition_applied": false,
"llm_decomposition_attempted": false,
"llm_provider_used": "local",
"llm_decomposition_trace_id": null,
"llm_decomposition_effective_message": "За какие годы в базе есть данные?",
"llm_decomposition_reason": "not_address_like",
"fallback_rule_hit": null,
"sanitized_user_message": "за какие годы в базе есть данные?",
"tool_gate_decision": "run_address_lane",
"tool_gate_reason": "address_mode_classifier_detected",
"answer_structure_v11": null,
"investigation_state_snapshot": null,
"normalized": null,
"normalizer_output": null
}
```
## 3. user
message_id: msg-2AdcL2htV8
created_at: 2026-04-02T16:05:21.646Z
reply_type: n/a
Какой год самый активный по количеству документов?
## 4. assistant
message_id: msg-I_td0fKwXe
created_at: 2026-04-02T16:05:27.411Z
reply_type: factual
trace_id: address-YhDBgtmKsB
Профиль периодов базы собран (movement-based aggregate).
Строк агрегата: 20.
Покрытие по датам: 2014-05-27T12:00:00Z.. 2030-08-03T12:00:00Z.
Самый активный месяц по операциям: 2015-02 (1249).
Топ месяцев по операциям:
1. 2015-02: 1249
2. 2015-01: 924
3. 2015-12: 225
4. 2015-09: 162
5. 2015-03: 110
### technical_debug_payload_json
```json
{
"trace_id": "address-YhDBgtmKsB",
"prompt_version": "address_query_runtime_v1",
"schema_version": "address_query_runtime_v1",
"fallback_type": "none",
"route_summary": null,
"fragments": [],
"requirements_extracted": [],
"coverage_report": {
"requirements_total": 0,
"requirements_covered": 0,
"requirements_uncovered": [],
"requirements_partially_covered": [],
"clarification_needed_for": [],
"out_of_scope_requirements": []
},
"routes": [],
"retrieval_status": [],
"retrieval_results": [],
"answer_grounding_check": {
"status": "grounded",
"route_subject_match": true,
"missing_requirements": [],
"reasons": [
"management_profile_signal_detected",
"document_list_signal_detected",
"period_coverage_profile_signal_detected"
],
"why_included_summary": [],
"selection_reason_summary": []
},
"dropped_intent_segments": [],
"detected_mode": "address_query",
"detected_mode_confidence": "medium",
"query_shape": "DOCUMENT_LIST",
"query_shape_confidence": "medium",
"detected_intent": "period_coverage_profile",
"detected_intent_confidence": "high",
"extracted_filters": {
"sort": "period_desc",
"limit": 20
},
"missing_required_filters": [],
"selected_recipe": "address_period_coverage_profile_v1",
"mcp_call_status_legacy": "matched_non_empty",
"account_scope_mode": "preferred",
"account_scope_fallback_applied": false,
"anchor_type": "unknown",
"anchor_value_raw": null,
"anchor_value_resolved": null,
"resolver_confidence": "low",
"ambiguity_count": 0,
"match_failure_stage": "none",
"match_failure_reason": null,
"mcp_call_status": "matched_non_empty",
"rows_fetched": 20,
"raw_rows_received": 20,
"rows_after_account_scope": 20,
"rows_after_recipe_filter": 20,
"rows_materialized": 20,
"rows_matched": 20,
"raw_row_keys_sample": [
"Период",
"Регистратор",
"СчетДт",
"СчетКт",
"Сумма",
"Period",
"Registrator",
"Amount"
],
"materialization_drop_reason": "none",
"account_token_raw": null,
"account_token_normalized": null,
"account_scope_fields_checked": [
"account_dt",
"account_kt",
"registrator",
"analytics"
],
"account_scope_match_strategy": "account_code_regex_plus_alias_map_v1",
"account_scope_drop_reason": "not_applicable",
"runtime_readiness": "LIVE_QUERYABLE_WITH_LIMITS",
"limited_reason_category": null,
"response_type": "FACTUAL_SUMMARY",
"execution_lane": "address_query",
"llm_decomposition_applied": false,
"llm_decomposition_attempted": true,
"llm_provider_used": "local",
"llm_decomposition_trace_id": "uHF8hKRPNeVaEz",
"llm_decomposition_effective_message": "Какой год самый активный по количеству документов?",
"llm_decomposition_reason": "normalized_fragment_rejected_intent_conflict",
"fallback_rule_hit": null,
"sanitized_user_message": "какой год самый активный по количеству документов?",
"tool_gate_decision": "run_address_lane",
"tool_gate_reason": "address_mode_classifier_detected",
"answer_structure_v11": null,
"investigation_state_snapshot": null,
"normalized": null,
"normalizer_output": {
"trace_id": "uHF8hKRPNeVaEz",
"prompt_version": "normalizer_v2_0_2",
"applied": false,
"effective_message": "Какой год самый активный по количеству документов?"
}
}
```
## 5. user
message_id: msg-epEcLkLqBg
created_at: 2026-04-02T16:05:53.209Z
reply_type: n/a
Какой месяц самый активный по количеству операций
## 6. assistant
message_id: msg-Tatd8G4RuZ
created_at: 2026-04-02T16:05:55.249Z
reply_type: factual
trace_id: address-eq9t1zFuet
Точный якорь не подтвердился в текущем окне live-данных; показаны ближайшие доступные документы/операции по выбранному типу.
Собран список банковских операций по контрагенту (live address lane).
Строк отобрано: 124.
1. 2022-04-13T12:00:00Z | Поступление на расчетный счет 00000000004 от 13.04.2022 12:00:00 | 0 / 0 | 1200000 | аналитика: СервисКонсалт, ООО
2. 2022-01-20T12:00:05Z | Поступление на расчетный счет 00000000003 от 20.01.2022 12:00:05 | 0 / 0 | 2254115 | аналитика: НОРТОН
3. 2022-01-20T12:00:04Z | Поступление на расчетный счет 00000000002 от 20.01.2022 12:00:04 | 0 / 0 | 1699940 | аналитика: МНН
4. 2022-01-20T12:00:03Z | Поступление на расчетный счет 00000000001 от 20.01.2022 12:00:03 | 0 / 0 | 890660 | аналитика: Чепурнов П.Д.
5. 2021-11-10T12:00:07Z | Поступление на расчетный счет 00000000013 от 10.11.2021 12:00:07 | 0 / 0 | 20000 | аналитика: Группа
6. 2021-09-29T12:00:03Z | Поступление на расчетный счет 00000000012 от 29.09.2021 12:00:03 | 0 / 0 | 50000 | аналитика: Группа
7. 2021-08-31T12:00:04Z | Поступление на расчетный счет 00000000011 от 31.08.2021 12:00:04 | 0 / 0 | 120500 | аналитика: Группа
8. 2021-06-22T12:00:00Z | Поступление на расчетный счет 00000000010 от 22.06.2021 12:00:00 | 0 / 0 | 498630 | аналитика: Группа
9. 2021-06-09T12:00:05Z | Поступление на расчетный счет 00000000009 от 09.06.2021 12:00:05 | 0 / 0 | 418960 | аналитика: Группа
10. 2021-04-28T12:00:08Z | Поступление на расчетный счет 00000000008 от 28.04.2021 12:00:08 | 0 / 0 | 564300 | аналитика: Группа
11. 2021-04-22T12:00:00Z | Поступление на расчетный счет 00000000007 от 22.04.2021 12:00:00 | 0 / 0 | 982420 | аналитика: Группа
12. 2021-04-13T12:00:11Z | Поступление на расчетный счет 00000000006 от 13.04.2021 12:00:11 | 0 / 0 | 1882400 | аналитика: Группа
13. 2021-03-25T12:00:02Z | Поступление на расчетный счет 00000000005 от 25.03.2021 12:00:02 | 0 / 0 | 644315 | аналитика: Группа
14. 2021-03-24T12:00:03Z | Поступление на расчетный счет 00000000004 от 24.03.2021 12:00:03 | 0 / 0 | 1219990 | аналитика: Группа
15. 2021-03-18T12:00:00Z | Поступление на расчетный счет 00000000003 от 18.03.2021 12:00:00 | 0 / 0 | 1425310 | аналитика: Группа
16. 2021-03-12T12:00:03Z | Поступление на расчетный счет 00000000002 от 12.03.2021 12:00:03 | 0 / 0 | 214600 | аналитика: Группа
17. 2021-02-19T12:00:01Z | Поступление на расчетный счет 00000000001 от 19.02.2021 12:00:01 | 0 / 0 | 518600 | аналитика: Группа
18. 2020-12-30T12:00:00Z | Поступление на расчетный счет 00000000044 от 30.12.2020 12:00:00 | 0 / 0 | 3248300 | аналитика: Группа
19. 2020-12-16T16:20:53Z | Поступление на расчетный счет 00000000043 от 16.12.2020 16:20:53 | 0 / 0 | 216600 | аналитика: Группа
20. 2020-12-16T16:20:52Z | Списание с расчетного счета 00000000294 от 16.12.2020 16:20:52 | 0 / 0 | 3849.26 | аналитика: УФК по г. Москве (для ГУ - Отделения ПФР по г. Москве и МО)
21. 2020-12-16T16:20:51Z | Списание с расчетного счета 00000000293 от 16.12.2020 16:20:51 | 0 / 0 | 60 | аналитика: СБЕРБАНК, ПАО
22. 2020-12-14T12:00:00Z | Поступление на расчетный счет 00000000042 от 14.12.2020 12:00:00 | 0 / 0 | 200000 | аналитика: Группа
23. 2020-11-30T12:00:07Z | Поступление на расчетный счет 00000000041 от 30.11.2020 12:00:07 | 0 / 0 | 38900 | аналитика: Группа
25. 2020-11-19T12:00:04Z | Поступление на расчетный счет 00000000039 от 19.11.2020 12:00:04 | 0 / 0 | 3320600 | аналитика: Группа
26. 2020-11-18T12:00:05Z | Поступление на расчетный счет 00000000038 от 18.11.2020 12:00:05 | 0 / 0 | 745300 | аналитика: Группа
27. 2020-11-18T12:00:04Z | Поступление на расчетный счет 00000000037 от 18.11.2020 12:00:04 | 0 / 0 | 320000 | аналитика: Группа
29. 2020-11-16T16:08:51Z | Списание с расчетного счета 00000000262 от 16.11.2020 16:08:51 | 0 / 0 | 8700 | аналитика: ВИЗАНТИЯ
30. 2020-11-13T12:00:03Z | Поступление на расчетный счет 00000000036 от 13.11.2020 12:00:03 | 0 / 0 | 313600 | аналитика: Группа
31. 2020-11-10T15:39:13Z | Поступление на расчетный счет 00000000035 от 10.11.2020 15:39:13 | 0 / 0 | 328300 | аналитика: Группа
32. 2020-10-26T12:00:00Z | Поступление на расчетный счет 00000000034 от 26.10.2020 12:00:00 | 0 / 0 | 175000 | аналитика: Группа
34. 2020-08-20T12:00:06Z | Поступление на расчетный счет 00000000032 от 20.08.2020 12:00:06 | 0 / 0 | 3126005 | аналитика: Группа
35. 2020-08-11T13:16:37Z | Поступление на расчетный счет 00000000031 от 11.08.2020 13:16:37 | 0 / 0 | 55200 | аналитика: МНН
36. 2020-08-11T13:15:30Z | Поступление на расчетный счет 00000000030 от 11.08.2020 13:15:30 | 0 / 0 | 221000 | аналитика: Гамма-мебель, ООО
37. 2020-07-30T12:00:00Z | Поступление на расчетный счет 00000000029 от 30.07.2020 12:00:00 | 0 / 0 | 20000 | аналитика: Группа
38. 2020-07-27T12:00:00Z | Поступление на расчетный счет 00000000028 от 27.07.2020 12:00:00 | 0 / 0 | 40860 | аналитика: Группа
39. 2020-07-13T12:00:00Z | Поступление на расчетный счет 00000000027 от 13.07.2020 12:00:00 | 0 / 0 | 276873.6 | аналитика: «Олимпстрой»
40. 2020-06-16T12:00:02Z | Поступление на расчетный счет 00000000026 от 16.06.2020 12:00:02 | 0 / 0 | 250000 | аналитика: Гамма-мебель, ООО
41. 2020-06-03T00:00:02Z | Поступление на расчетный счет 00000000025 от 03.06.2020 0:00:02 | 0 / 0 | 1642764.88 | аналитика: ЗАО Ремонтно-строительная фирма «Ремстройсервис»
42. 2020-06-03T00:00:01Z | Поступление на расчетный счет 00000000024 от 03.06.2020 0:00:01 | 0 / 0 | 297760 | аналитика: ЗАО Ремонтно-строительная фирма «Ремстройсервис»
43. 2020-05-21T12:00:00Z | Поступление на расчетный счет 00000000023 от 21.05.2020 12:00:00 | 0 / 0 | 250546.24 | аналитика: ЗАО Ремонтно-строительная фирма «Ремстройсервис»
44. 2020-05-15T12:00:02Z | Поступление на расчетный счет 00000000022 от 15.05.2020 12:00:02 | 0 / 0 | 765000 | аналитика: ПрофТренд,ООО
45. 2020-04-27T12:00:00Z | Поступление на расчетный счет 00000000021 от 27.04.2020 12:00:00 | 0 / 0 | 500000 | аналитика: ЭталонМебель
46. 2020-03-26T12:00:04Z | Поступление на расчетный счет 00000000020 от 26.03.2020 12:00:04 | 0 / 0 | 355000 | аналитика: ЭталонМебель
47. 2020-03-19T12:00:01Z | Поступление на расчетный счет 00000000019 от 19.03.2020 12:00:01 | 0 / 0 | 4000000 | аналитика: ЭталонМебель
48. 2020-03-19T12:00:00Z | Поступление на расчетный счет 00000000018 от 19.03.2020 12:00:00 | 0 / 0 | 2500000 | аналитика: НОРТОН
49. 2020-03-02T12:00:04Z | Поступление на расчетный счет 00000000017 от 02.03.2020 12:00:04 | 0 / 0 | 0.26 | аналитика: СБЕРБАНК, ПАО
50. 2020-03-02T12:00:03Z | Поступление на расчетный счет 00000000016 от 02.03.2020 12:00:03 | 0 / 0 | 3000000 | аналитика: ИП Калинин Н.М.
51. 2020-03-02T12:00:02Z | Поступление на расчетный счет 00000000015 от 02.03.2020 12:00:02 | 0 / 0 | 2500000 | аналитика: Лайсвуд, ООО
52. 2020-03-02T12:00:01Z | Поступление на расчетный счет 00000000013 от 02.03.2020 12:00:01 | 0 / 0 | 1100000 | аналитика: Гамма-мебель, ООО
53. 2020-03-02T12:00:00Z | Поступление на расчетный счет 00000000012 от 02.03.2020 12:00:00 | 0 / 0 | 1000000 | аналитика: ЭталонМебель
54. 2020-03-02T00:00:00Z | Поступление на расчетный счет 00000000014 от 02.03.2020 0:00:00 | 0 / 0 | 1920000 | аналитика: НОРТОН
55. 2020-02-21T12:00:02Z | Поступление на расчетный счет 00000000011 от 21.02.2020 12:00:02 | 0 / 0 | 400000 | аналитика: НОРТОН
56. 2020-02-18T12:00:03Z | Поступление на расчетный счет 00000000010 от 18.02.2020 12:00:03 | 0 / 0 | 200000 | аналитика: ИП Калинин Н.М.
57. 2020-02-07T12:00:03Z | Поступление на расчетный счет 00000000009 от 07.02.2020 12:00:03 | 0 / 0 | 304300 | аналитика: Смарт
58. 2020-02-03T00:00:01Z | Поступление на расчетный счет 00000000008 от 03.02.2020 0:00:01 | 0 / 0 | 0.01 | аналитика: СБЕРБАНК, ПАО
59. 2020-02-03T00:00:00Z | Поступление на расчетный счет 00000000006 от 03.02.2020 0:00:00 | 0 / 0 | 2500000 | аналитика: СБЕРБАНК, ПАО
60. 2020-02-03T00:00:00Z | Поступление на расчетный счет 00000000007 от 03.02.2020 0:00:00 | 0 / 0 | 1778.69 | аналитика: СБЕРБАНК, ПАО
61. 2020-01-20T11:36:40Z | Поступление на расчетный счет 00000000005 от 20.01.2020 11:36:40 | 0 / 0 | 3678.69 | аналитика: СБЕРБАНК, ПАО
62. 2020-01-20T11:35:27Z | Поступление на расчетный счет 00000000004 от 20.01.2020 11:35:27 | 0 / 0 | 3600000 | аналитика: СБЕРБАНК, ПАО
63. 2020-01-09T12:00:02Z | Поступление на расчетный счет 00000000003 от 09.01.2020 12:00:02 | 0 / 0 | 6736.6 | аналитика: СБЕРБАНК, ПАО
64. 2020-01-09T12:00:01Z | Поступление на расчетный счет 00000000002 от 09.01.2020 12:00:01 | 0 / 0 | 6680000 | аналитика: СБЕРБАНК, ПАО
65. 2020-01-09T12:00:00Z | Поступление на расчетный счет 00000000001 от 09.01.2020 12:00:00 | 0 / 0 | 0.06 | аналитика: СБЕРБАНК, ПАО
66. 2019-12-26T12:00:03Z | Поступление на расчетный счет 00000000073 от 26.12.2019 12:00:03 | 0 / 0 | 400035.05 | аналитика: ИП Калинин Н.М.
67. 2019-12-25T16:09:27Z | Поступление на расчетный счет 00000000072 от 25.12.2019 16:09:27 | 0 / 0 | 6787560 | аналитика: ГКУ
68. 2019-12-24T14:52:22Z | Списание с расчетного счета 00000000552 от 24.12.2019 14:52:22 | 0 / 0 | 5100 | аналитика: СБЕРБАНК, ПАО
69. 2019-12-24T14:52:21Z | Поступление на расчетный счет 00000000071 от 24.12.2019 14:52:21 | 0 / 0 | 400000 | аналитика: НОРТОН
70. 2019-12-24T14:52:20Z | Списание с расчетного счета 00000000551 от 24.12.2019 14:52:20 | 0 / 0 | 22100 | аналитика: УФК МФ по г. Москве (ИФНС России №36 по г. Москве)
71. 2019-12-24T14:51:56Z | Списание с расчетного счета 00000000546 от 24.12.2019 14:51:56 | 0 / 0 | 32560 | аналитика: УФК по г. Москве (для ГУ - Отделения ПФР по г. Москве и МО)
72. 2019-12-24T14:51:45Z | Списание с расчетного счета 00000000545 от 24.12.2019 14:51:45 | 0 / 0 | 7548 | аналитика: УФК по г. Москве (для ГУ - Отделения ПФР по г. Москве и МО)
73. 2019-12-24T14:51:33Z | Списание с расчетного счета 00000000544 от 24.12.2019 14:51:33 | 0 / 0 | 296 | аналитика: УФК по г. Москве (ГУ -
74. 2019-12-13T12:00:04Z | Поступление на расчетный счет 00000000070 от 13.12.2019 12:00:04 | 0 / 0 | 572800 | аналитика: ИП Калинин Н.М.
75. 2019-12-11T12:35:33Z | Поступление на расчетный счет 00000000069 от 11.12.2019 12:35:33 | 0 / 0 | 399800 | аналитика: Гамма-мебель, ООО
76. 2019-12-02T12:00:02Z | Поступление на расчетный счет 00000000068 от 02.12.2019 12:00:02 | 0 / 0 | 0.59 | аналитика: СБЕРБАНК, ПАО
77. 2019-11-29T12:00:07Z | Поступление на расчетный счет 00000000067 от 29.11.2019 12:00:07 | 0 / 0 | 120800 | аналитика: Смарт
78. 2019-11-20T12:00:00Z | Поступление на расчетный счет 00000000066 от 20.11.2019 12:00:00 | 0 / 0 | 155000 | аналитика: НОРТОН
79. 2019-11-18T12:00:00Z | Поступление на расчетный счет 00000000065 от 18.11.2019 12:00:00 | 0 / 0 | 10000 | аналитика: НОРТОН
80. 2019-11-14T00:00:00Z | Поступление на расчетный счет 00000000064 от 14.11.2019 0:00:00 | 0 / 0 | 250000 | аналитика: НОРТОН
81. 2019-11-06T12:00:00Z | Поступление на расчетный счет 00000000063 от 06.11.2019 12:00:00 | 0 / 0 | 85000 | аналитика: ИП Калинин Н.М.
82. 2019-11-01T12:00:00Z | Поступление на расчетный счет 00000000062 от 01.11.2019 12:00:00 | 0 / 0 | 0.04 | аналитика: СБЕРБАНК, ПАО
83. 2019-10-25T12:00:00Z | Поступление на расчетный счет 00000000061 от 25.10.2019 12:00:00 | 0 / 0 | 570177.4 | аналитика: ГБПОУ г. Москвы \Московская театральная школа Олега Табакова\
84. 2019-10-23T12:00:07Z | Поступление на расчетный счет 00000000060 от 23.10.2019 12:00:07 | 0 / 0 | 331634.63 | аналитика: ГБПОУ г. Москвы \Московская театральная школа Олега Табакова\
85. 2019-10-23T12:00:06Z | Поступление на расчетный счет 00000000059 от 23.10.2019 12:00:06 | 0 / 0 | 203536.42 | аналитика: ГБПОУ г. Москвы \Московская театральная школа Олега Табакова\
86. 2019-10-23T12:00:05Z | Поступление на расчетный счет 00000000058 от 23.10.2019 12:00:05 | 0 / 0 | 100000 | аналитика: Смарт
87. 2019-10-22T12:00:01Z | Поступление на расчетный счет 00000000057 от 22.10.2019 12:00:01 | 0 / 0 | 943400 | аналитика: Смарт
88. 2019-10-22T12:00:00Z | Поступление на расчетный счет 00000000056 от 22.10.2019 12:00:00 | 0 / 0 | 765000 | аналитика: НОРТОН
89. 2019-10-16T12:00:01Z | Поступление на расчетный счет 00000000055 от 16.10.2019 12:00:01 | 0 / 0 | 364475 | аналитика: ЭталонМебель
90. 2019-10-16T12:00:00Z | Поступление на расчетный счет 00000000053 от 16.10.2019 12:00:00 | 0 / 0 | 120500 | аналитика: ПрофТренд,ООО
91. 2019-10-16T11:58:53Z | Поступление на расчетный счет 00000000054 от 16.10.2019 11:58:53 | 0 / 0 | 161641 | аналитика: Лайсвуд, ООО
92. 2019-10-15T12:00:07Z | Поступление на расчетный счет 00000000052 от 15.10.2019 12:00:07 | 0 / 0 | 5000000 | аналитика: СБЕРБАНК, ПАО
93. 2019-10-08T12:00:00Z | Поступление на расчетный счет 00000000051 от 08.10.2019 12:00:00 | 0 / 0 | 289101 | аналитика: НОРТОН
94. 2019-10-01T12:00:04Z | Поступление на расчетный счет 00000000050 от 01.10.2019 12:00:04 | 0 / 0 | 0.75 | аналитика: СБЕРБАНК, ПАО
95. 2019-09-23T14:49:17Z | Поступление на расчетный счет 00000000049 от 23.09.2019 14:49:17 | 0 / 0 | 211800 | аналитика: МНН
96. 2019-09-16T11:00:00Z | Поступление на расчетный счет 00000000048 от 16.09.2019 11:00:00 | 0 / 0 | 10147409.75 | аналитика: Департамент капитального ремонта города Москвы.
98. 2019-09-02T12:00:01Z | Поступление на расчетный счет 00000000046 от 02.09.2019 12:00:01 | 0 / 0 | 1.61 | аналитика: СБЕРБАНК, ПАО
100. 2019-08-13T12:00:00Z | Поступление на расчетный счет 00000000044 от 13.08.2019 12:00:00 | 0 / 0 | 1250000 | аналитика: НОРТОН
101. 2019-08-05T18:34:52Z | Списание с расчетного счета 00000000350 от 05.08.2019 18:34:52 | 0 / 0 | 8 | аналитика: СБЕРБАНК, ПАО
102. 2019-08-01T14:38:57Z | Поступление на расчетный счет 00000000043 от 01.08.2019 14:38:57 | 0 / 0 | 0.07 | аналитика: СБЕРБАНК, ПАО
103. 2019-08-01T14:38:56Z | Поступление на расчетный счет 00000000042 от 01.08.2019 14:38:56 | 0 / 0 | 4341417.9 | аналитика: Департамент капитального ремонта города Москвы.
104. 2019-07-31T12:00:22Z | Поступление на расчетный счет 00000000041 от 31.07.2019 12:00:22 | 0 / 0 | 885750 | аналитика: МОСКОВСКИЙ ФИЛИАЛ ООО КБ\МЕГАПОЛИС\
105. 2019-07-31T00:00:00Z | Поступление на расчетный счет 00000000040 от 31.07.2019 0:00:00 | 0 / 0 | 5851476.3 | аналитика: Департамент капитального ремонта города Москвы.
106. 2019-07-30T12:28:33Z | Поступление на расчетный счет 00000000039 от 30.07.2019 12:28:33 | 0 / 0 | 150000 | аналитика: ПрофТренд,ООО
107. 2019-07-26T12:00:03Z | Поступление на расчетный счет 00000000038 от 26.07.2019 12:00:03 | 0 / 0 | 2300000 | аналитика: НОРТОН
108. 2019-07-26T12:00:00Z | Поступление на расчетный счет 00000000037 от 26.07.2019 12:00:00 | 0 / 0 | 1089000 | аналитика: МОСКОВСКИЙ ФИЛИАЛ ООО КБ\МЕГАПОЛИС\
109. 2019-07-19T12:00:00Z | Поступление на расчетный счет 00000000036 от 19.07.2019 12:00:00 | 0 / 0 | 659709 | аналитика: МОСКОВСКИЙ ФИЛИАЛ ООО КБ\МЕГАПОЛИС\
110. 2019-07-17T12:26:22Z | Поступление на расчетный счет 00000000035 от 17.07.2019 12:26:22 | 0 / 0 | 2545480 | аналитика: МОСКОВСКИЙ ФИЛИАЛ ООО КБ\МЕГАПОЛИС\
111. 2019-07-05T00:00:03Z | Поступление на расчетный счет 00000000034 от 05.07.2019 0:00:03 | 0 / 0 | 3065950 | аналитика: МОСКОВСКИЙ ФИЛИАЛ ООО КБ\МЕГАПОЛИС\
112. 2019-07-01T12:00:03Z | Поступление на расчетный счет 00000000033 от 01.07.2019 12:00:03 | 0 / 0 | 1.88 | аналитика: СБЕРБАНК, ПАО
113. 2019-07-01T12:00:02Z | Поступление на расчетный счет 00000000032 от 01.07.2019 12:00:02 | 0 / 0 | 1943295 | аналитика: Лайсвуд, ООО
114. 2019-06-26T00:00:01Z | Поступление на расчетный счет 00000000031 от 26.06.2019 0:00:01 | 0 / 0 | 4148050 | аналитика: МОСКОВСКИЙ ФИЛИАЛ ООО КБ\МЕГАПОЛИС\
115. 2019-06-25T17:29:13Z | Поступление на расчетный счет 00000000030 от 25.06.2019 17:29:13 | 0 / 0 | 2606060 | аналитика: МОСКОВСКИЙ ФИЛИАЛ ООО КБ\МЕГАПОЛИС\
116. 2019-06-25T17:29:10Z | Поступление на расчетный счет 00000000029 от 25.06.2019 17:29:10 | 0 / 0 | 57700 | аналитика: Лайсвуд, ООО
117. 2019-06-24T12:00:07Z | Поступление на расчетный счет 00000000028 от 24.06.2019 12:00:07 | 0 / 0 | 877000 | аналитика: Лайсвуд, ООО
118. 2019-06-17T12:10:24Z | Поступление на расчетный счет 00000000027 от 17.06.2019 12:10:24 | 0 / 0 | 9500644.3 | аналитика: Департамент капитального ремонта города Москвы.
119. 2019-06-17T12:10:23Z | Поступление на расчетный счет 00000000026 от 17.06.2019 12:10:23 | 0 / 0 | 6369341.5 | аналитика: Департамент капитального ремонта города Москвы.
120. 2019-06-13T12:00:01Z | Поступление на расчетный счет 00000000025 от 13.06.2019 12:00:01 | 0 / 0 | 20000 | аналитика: МНН
121. 2019-06-10T17:03:15Z | Поступление на расчетный счет 00000000024 от 10.06.2019 17:03:15 | 0 / 0 | 7714130 | аналитика: МОСКОВСКИЙ ФИЛИАЛ ООО КБ\МЕГАПОЛИС\
122. 2019-06-07T13:19:06Z | Поступление на расчетный счет 00000000023 от 07.06.2019 13:19:06 | 0 / 0 | 13590525.6 | аналитика: Департамент капитального ремонта города Москвы.
123. 2019-06-07T13:19:05Z | Поступление на расчетный счет 00000000022 от 07.06.2019 13:19:05 | 0 / 0 | 3874887.07 | аналитика: Департамент капитального ремонта города Москвы.
124. 2019-06-07T13:19:04Z | Поступление на расчетный счет 00000000021 от 07.06.2019 13:19:04 | 0 / 0 | 386923.5 | аналитика: Департамент капитального ремонта города Москвы.
### technical_debug_payload_json
```json
{
"trace_id": "address-eq9t1zFuet",
"prompt_version": "address_query_runtime_v1",
"schema_version": "address_query_runtime_v1",
"fallback_type": "none",
"route_summary": null,
"fragments": [],
"requirements_extracted": [],
"coverage_report": {
"requirements_total": 0,
"requirements_covered": 0,
"requirements_uncovered": [],
"requirements_partially_covered": [],
"clarification_needed_for": [],
"out_of_scope_requirements": []
},
"routes": [],
"retrieval_status": [],
"retrieval_results": [],
"answer_grounding_check": {
"status": "grounded",
"route_subject_match": true,
"missing_requirements": [],
"reasons": [
"address_entity_detected",
"object_signal_detected",
"bank_ops_by_counterparty_signal_detected",
"anchor_not_matched_fallback_rows"
],
"why_included_summary": [],
"selection_reason_summary": []
},
"dropped_intent_segments": [],
"detected_mode": "address_query",
"detected_mode_confidence": "medium",
"query_shape": "OBJECT_LOOKUP",
"query_shape_confidence": "medium",
"detected_intent": "bank_operations_by_counterparty",
"detected_intent_confidence": "medium",
"extracted_filters": {
"sort": "period_desc",
"limit": 20,
"counterparty": "количеству"
},
"missing_required_filters": [],
"selected_recipe": "address_bank_operations_by_counterparty_v1",
"mcp_call_status_legacy": "matched_non_empty",
"account_scope_mode": "preferred",
"account_scope_fallback_applied": false,
"anchor_type": "counterparty",
"anchor_value_raw": "количеству",
"anchor_value_resolved": "количеству",
"resolver_confidence": "medium",
"ambiguity_count": 0,
"match_failure_stage": "materialized_but_not_anchor_matched",
"match_failure_reason": "counterparty_anchor_not_matched_in_materialized_rows",
"mcp_call_status": "matched_non_empty",
"rows_fetched": 1000,
"raw_rows_received": 1000,
"rows_after_account_scope": 124,
"rows_after_recipe_filter": 0,
"rows_materialized": 124,
"rows_matched": 124,
"raw_row_keys_sample": [
"Период",
"Регистратор",
"СчетДт",
"СчетКт",
"Сумма",
"Контрагент",
"Period",
"Registrator",
"Amount"
],
"materialization_drop_reason": "none",
"account_token_raw": null,
"account_token_normalized": null,
"account_scope_fields_checked": [
"account_dt",
"account_kt",
"registrator",
"analytics"
],
"account_scope_match_strategy": "account_code_regex_plus_alias_map_v1",
"account_scope_drop_reason": "not_applicable",
"runtime_readiness": "LIVE_QUERYABLE_WITH_LIMITS",
"limited_reason_category": null,
"response_type": "FACTUAL_LIST",
"execution_lane": "address_query",
"llm_decomposition_applied": true,
"llm_decomposition_attempted": false,
"llm_provider_used": "local",
"llm_decomposition_trace_id": null,
"llm_decomposition_effective_message": "банковские операции по контрагенту количеству",
"llm_decomposition_reason": "fallback_rule_applied_without_llm",
"fallback_rule_hit": "bank_operations_counterparty_rewrite",
"sanitized_user_message": "какой месяц самый активный по количеству операций",
"tool_gate_decision": "run_address_lane",
"tool_gate_reason": "address_mode_classifier_detected",
"answer_structure_v11": null,
"investigation_state_snapshot": null,
"normalized": null,
"normalizer_output": null
}
```
## 7. user
message_id: msg-s8Y4cC0eSo
created_at: 2026-04-02T16:06:51.459Z
reply_type: n/a
Какие типы документов используются чаще всего в базе?
## 8. assistant
message_id: msg-jl4AqKTa9W
created_at: 2026-04-02T16:06:56.851Z
reply_type: partial_coverage
trace_id: address-hNDQIn8hKi
Не удалось выполнить адресный live-запрос в V1.
Причина: live MCP вызов завершился ошибкой.
Что нужно уточнить: {ВнешняяОбработка.MCPToolkit.Форма.Форма.Форма(1989)}: Ошибка при вызове метода контекста (Выполнить): {(23, 5)}: Недопустимое поле для группировки
<<?>>ЛЕВ(Движения.СчетДт.Код, 2).
### technical_debug_payload_json
```json
{
"trace_id": "address-hNDQIn8hKi",
"prompt_version": "address_query_runtime_v1",
"schema_version": "address_query_runtime_v1",
"fallback_type": "partial",
"route_summary": null,
"fragments": [],
"requirements_extracted": [],
"coverage_report": {
"requirements_total": 0,
"requirements_covered": 0,
"requirements_uncovered": [],
"requirements_partially_covered": [],
"clarification_needed_for": [],
"out_of_scope_requirements": []
},
"routes": [],
"retrieval_status": [],
"retrieval_results": [],
"answer_grounding_check": {
"status": "partial",
"route_subject_match": true,
"missing_requirements": [],
"reasons": [
"address_action_detected",
"address_entity_detected",
"document_list_signal_detected",
"document_type_and_account_section_profile_signal_detected",
"{ВнешняяОбработка.MCPToolkit.Форма.Форма.Форма(1989)}: Ошибка при вызове метода контекста (Выполнить): {(23, 5)}: Недопустимое поле для группировки\n<<?>>ЛЕВ(Движения.СчетДт.Код, 2)"
],
"why_included_summary": [],
"selection_reason_summary": []
},
"dropped_intent_segments": [],
"detected_mode": "address_query",
"detected_mode_confidence": "high",
"query_shape": "DOCUMENT_LIST",
"query_shape_confidence": "medium",
"detected_intent": "document_type_and_account_section_profile",
"detected_intent_confidence": "high",
"extracted_filters": {
"sort": "period_desc",
"limit": 20
},
"missing_required_filters": [],
"selected_recipe": "address_document_type_and_account_section_profile_v1",
"mcp_call_status_legacy": "error",
"account_scope_mode": "preferred",
"account_scope_fallback_applied": false,
"anchor_type": "unknown",
"anchor_value_raw": null,
"anchor_value_resolved": null,
"resolver_confidence": "low",
"ambiguity_count": 0,
"match_failure_stage": "none",
"match_failure_reason": null,
"mcp_call_status": "error",
"rows_fetched": 0,
"raw_rows_received": 0,
"rows_after_account_scope": 0,
"rows_after_recipe_filter": 0,
"rows_materialized": 0,
"rows_matched": 0,
"raw_row_keys_sample": [],
"materialization_drop_reason": "none",
"account_token_raw": null,
"account_token_normalized": null,
"account_scope_fields_checked": [
"account_dt",
"account_kt",
"registrator",
"analytics"
],
"account_scope_match_strategy": "account_code_regex_plus_alias_map_v1",
"account_scope_drop_reason": "not_applicable",
"runtime_readiness": "UNKNOWN",
"limited_reason_category": "execution_error",
"response_type": "LIMITED_WITH_REASON",
"execution_lane": "address_query",
"llm_decomposition_applied": false,
"llm_decomposition_attempted": true,
"llm_provider_used": "local",
"llm_decomposition_trace_id": "mVOahmoBPM_s6k",
"llm_decomposition_effective_message": "Какие типы документов используются чаще всего в базе?",
"llm_decomposition_reason": "normalized_fragment_same",
"fallback_rule_hit": null,
"sanitized_user_message": "какие типы документов используются чаще всего в базе?",
"tool_gate_decision": "run_address_lane",
"tool_gate_reason": "address_mode_classifier_detected",
"answer_structure_v11": null,
"investigation_state_snapshot": null,
"normalized": null,
"normalizer_output": {
"trace_id": "mVOahmoBPM_s6k",
"prompt_version": "normalizer_v2_0_2",
"applied": false,
"effective_message": "Какие типы документов используются чаще всего в базе?"
}
}
```
## 9. user
message_id: msg--Ca80tRkFu
created_at: 2026-04-02T16:07:07.478Z
reply_type: n/a
Какие разделы учета наиболее заполнены и какие почти не используются?
## 10. assistant
message_id: msg-poa532-zrB
created_at: 2026-04-02T16:07:08.043Z
reply_type: partial_coverage
trace_id: address-m94uk3kCNM
Не удалось выполнить адресный live-запрос в V1.
Причина: live MCP вызов завершился ошибкой.
Что нужно уточнить: {ВнешняяОбработка.MCPToolkit.Форма.Форма.Форма(1989)}: Ошибка при вызове метода контекста (Выполнить): {(23, 5)}: Недопустимое поле для группировки
<<?>>ЛЕВ(Движения.СчетДт.Код, 2).
### technical_debug_payload_json
```json
{
"trace_id": "address-m94uk3kCNM",
"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": [
"management_profile_signal_detected",
"shape_not_detected",
"document_type_and_account_section_profile_signal_detected",
"{ВнешняяОбработка.MCPToolkit.Форма.Форма.Форма(1989)}: Ошибка при вызове метода контекста (Выполнить): {(23, 5)}: Недопустимое поле для группировки\n<<?>>ЛЕВ(Движения.СчетДт.Код, 2)"
],
"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": "document_type_and_account_section_profile",
"detected_intent_confidence": "high",
"extracted_filters": {
"sort": "period_desc",
"limit": 20
},
"missing_required_filters": [],
"selected_recipe": "address_document_type_and_account_section_profile_v1",
"mcp_call_status_legacy": "error",
"account_scope_mode": "preferred",
"account_scope_fallback_applied": false,
"anchor_type": "unknown",
"anchor_value_raw": null,
"anchor_value_resolved": null,
"resolver_confidence": "low",
"ambiguity_count": 0,
"match_failure_stage": "none",
"match_failure_reason": null,
"mcp_call_status": "error",
"rows_fetched": 0,
"raw_rows_received": 0,
"rows_after_account_scope": 0,
"rows_after_recipe_filter": 0,
"rows_materialized": 0,
"rows_matched": 0,
"raw_row_keys_sample": [],
"materialization_drop_reason": "none",
"account_token_raw": null,
"account_token_normalized": null,
"account_scope_fields_checked": [
"account_dt",
"account_kt",
"registrator",
"analytics"
],
"account_scope_match_strategy": "account_code_regex_plus_alias_map_v1",
"account_scope_drop_reason": "not_applicable",
"runtime_readiness": "UNKNOWN",
"limited_reason_category": "execution_error",
"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": "address_mode_classifier_detected",
"answer_structure_v11": null,
"investigation_state_snapshot": null,
"normalized": null,
"normalizer_output": null
}
```

View File

@ -21,6 +21,8 @@
Поддерживаемые intents в runtime:
- `period_coverage_profile` (Wave-1 B1, pre-gate)
- `document_type_and_account_section_profile` (Wave-1 B1, pre-gate)
- `list_open_contracts`
- `list_payables_counterparties`
- `list_receivables_counterparties`
@ -35,6 +37,7 @@
Ключевой scope-лимит:
- `COMPOUND_FACTUAL_QUERY` пока detection-only (без multi-intent execution).
- `period_coverage_profile` и `document_type_and_account_section_profile` реализованы в коде, но еще не закрыты через domain live-gate Batch-1.
- `account_turnover_snapshot` и `list_documents_by_type` не реализованы в runtime V1.
## Основные документы
@ -50,6 +53,13 @@
- `step0_preprod_rail_plan_v1.md` - обязательный pre-prod рельсовый этап перед массовым расширением доменов.
- `step0_closeout_2026-04-02.md` - факт закрытия Step-0 с артефактами и gate-подтверждением.
- `domain_expansion_implementation_plan_v1.md` - план `Step-4`.
- `general_domain_questions_analysis_plan_v1_2026-04-02.md` - глубокий разбор общего домена (40 вопросов), route-модель и batch-план внедрения.
- `management_route_probe_report_g1_2026-04-02.md` - live Batch-0 probe по первой группе общего домена (Q1Q5) с route-верификацией через MCP/1С.
- `complex_questions_status_and_reuse_map_2026-04-02.md` - сверка кода/доков по "сложным вопросам": что реализовано, что detection-only, и как переиспользовать в продуктовом плане.
- `step4_wave1_batch1_master_checker_v1.md` - master checker первой волны Step-4 (`Q1..Q7 + Q28`) с go/no-go фазами.
- `wave1_batch1_readiness_report_2026-04-02.md` - авто-отчет готовности к старту Batch-1.
- `domain_general_batch1_foundation_card_v1.md` - domain card первой волны (Phase A).
- `step4_wave1_batch1_phaseA_backlog_v1.md` - рабочий backlog по подготовке кода и gate-этапам Batch-1.
- `domain_card_template_v1.md` - шаблон описания домена для repeatable delivery.
- `domain_acceptance_question_set_template_v1.md` - шаблон структуры domain acceptance question set.
- `run_pack_spec_v1.md` - обязательный формат run-артефактов и gate-валидации.
@ -68,6 +78,7 @@
- `python scripts/compare_address_run_summary.py --baseline-summary <baseline_run_summary.json> --candidate-summary <candidate_run_summary.json>`
- `python scripts/run_address_nightly_regression.py`
- `python scripts/run_address_nightly_regression.py --dry-run`
- `python scripts/check_address_wave1_batch1_readiness.py`
- `powershell -ExecutionPolicy Bypass -File .\scripts\run_address_nightly_regression.ps1`
## Связанные run-паки

View File

@ -0,0 +1,112 @@
# Management Route Probe Report — General Domain Group 1 (Q1Q5)
- Дата/время запуска: `2026-04-02T19:55:56+03:00`
- Endpoint: `http://127.0.0.1:6003`
- Channel: `default`
- Контур: `question_mode=address_query`, Batch-0 route probes
## Вердикт по вопросам группы 1
- Q1 (покрытие периодов): **PASS**
- Q2 (самый активный год по документам): **PASS**
- Q3 (самый активный месяц по операциям): **PASS**
- Q4 (наиболее частые типы документов): **PASS**
- Q5 (наиболее/наименее заполненные разделы учета): **PASS**
## Q1 — Покрытие базы и активность по годам
- Мин период: `2014-05-27T12:00:00Z`
- Макс период: `2030-08-03T12:00:00Z`
- Всего операций в регистре: `12659`
- Годы с данными: `2014..2030` (уникальных лет: `13`)
- Топ годов по количеству операций:
- `2015`: `3212`
- `2019`: `2273`
- `2018`: `2234`
- `2020`: `1391`
- `2017`: `1376`
- `2016`: `1187`
- `2021`: `553`
- `2014`: `235`
## Q2 — Самый активный год по количеству документов
- Метрика: `COUNT(DISTINCT Регистратор)` по годам на `РегистрБухгалтерии.Хозрасчетный`.
- Топ годов:
- `2019`: `1004`
- `2018`: `703`
- `2015`: `671`
- `2016`: `577`
- `2020`: `536`
- `2017`: `456`
- `2021`: `308`
- `2014`: `115`
- Вывод: route дает корректный ranking по документной активности в контуре движений.
## Q3 — Самый активный месяц по количеству операций
- Метрика: `COUNT(*)` по `НАЧАЛОПЕРИОДА(Период, МЕСЯЦ)`.
- Топ месяцев:
- `2015-02`: `1249`
- `2015-01`: `924`
- `2018-08`: `854`
- `2019-05`: `536`
- `2017-12`: `503`
- `2020-06`: `305`
- `2020-03`: `297`
- `2019-09`: `273`
- `2018-11`: `261`
- `2015-12`: `225`
- `2018-12`: `213`
- `2019-08`: `185`
## Q4 — Наиболее частые типы документов
- Метрика: `COUNT(DISTINCT Регистратор)` по `ПРЕДСТАВЛЕНИЕ(ТИПЗНАЧЕНИЯ(Регистратор))`.
- Топ типов:
- `Списание с расчетного счета`: `2352`
- `Поступление товаров и услуг`: `486`
- `Регламентная операция`: `414`
- `Поступление на расчетный счет`: `323`
- `Счет-фактура полученный`: `262`
- `Операция (бухгалтерский и налоговый учет)`: `147`
- `Реализация товаров и услуг`: `123`
- `Отражение зарплаты в регламентированном учете`: `87`
- `Приходный кассовый ордер`: `76`
- `Расходный кассовый ордер`: `73`
- `Требование-накладная`: `45`
- `Передача товаров`: `16`
## Q5 — Заполненность разделов учета
- Метод: агрегирование по первым двум цифрам кода счета (дебет + кредит).
- Топ разделов:
- `90` `Продажи`: `2973`
- `51` `Расчетные счета`: `2967`
- `60` `Расчеты с поставщиками и подрядчиками`: `2793`
- `44` `Расходы на продажу`: `2422`
- `68` `Расчеты по налогам и сборам`: `1554`
- `10` `Материалы`: `1494`
- `19` `НДС по приобретенным ценностям`: `1490`
- `91` `Прочие доходы и расходы`: `1324`
- `41` `Товары`: `1312`
- `76` `Расчеты с разными дебиторами и кредиторами`: `1240`
- Разделы с минимальной активностью (среди использованных):
- `58` `Финансовые вложения`: `2`
- `81` `Собственные акции (доли)`: `2`
- `80` `Уставный капитал`: `5`
- `75` `Расчеты с учредителями`: `16`
- `55` `Специальные счета в банках`: `18`
- `84` `Нераспределенная прибыль (непокрытый убыток)`: `20`
- `26` `Общехозяйственные расходы`: `51`
- `71` `Расчеты с подотчетными лицами`: `76`
- `43` `Готовая продукция`: `81`
- `50` `Касса`: `163`
## Что подтверждено для продуктового плана
- `R01 period_coverage_profile`: подтвержден (Q1/Q3).
- `R02 document_type_usage_profile`: подтвержден (Q2/Q4).
- `Q5` закрывается route-контрактом через account-section aggregation; нужна фиксация правила для "почти не используются" (порог/квантиль).
## Ограничения и требования к точности
- Q2/Q4 измеряются по `Регистратор` в движениях; это нужно явно закрепить как `movement-based document activity`.
- Для Q5 нельзя опираться только на raw счета: обязателен post-processing `section = account_code[:2]`.
- Есть записи с редкими/системными кодами (например off-balance); требуется whitelist/normalization policy для бизнес-отчета.
## Следующий шаг Batch-0
- Зафиксировать route contracts для `R01` и `R02` в runtime docs.
- Добавить acceptance-вопросы Q1..Q5 в domain pack с жесткой проверкой метрик и сортировки.

View File

@ -31,6 +31,8 @@
| AQ-P0-08 | Покажи документы по договору Y | `list_documents_by_contract` | `contract` | `period_from`, `period_to`, `as_of_date`, `organization`, `counterparty`, `limit`, `sort` | `DOCUMENT`, `DOCUMENT_JOURNAL`, `ACCOUNTING_REGISTER`, `NSI_CATALOG` | `address_documents_by_contract_v1` | `FACTUAL_LIST` | P0 |
| AQ-P0-08B | Покажи банковские операции по договору Y | `bank_operations_by_contract` | `contract` | `period_from`, `period_to`, `as_of_date`, `organization`, `counterparty`, `limit`, `sort` | `DOCUMENT`, `DOCUMENT_JOURNAL`, `ACCOUNTING_REGISTER`, `NSI_CATALOG` | `address_bank_operations_by_contract_v1` | `FACTUAL_LIST` | P0 |
| AQ-P0-09 | Какие документы формируют остаток по счету 62? | `documents_forming_balance` | `account` + `as_of_date` (`as_of_date` defaulted) | `organization`, `counterparty`, `contract`, `period_from`, `period_to`, `limit`, `sort` | `ACCOUNTING_REGISTER`, `DOCUMENT` | `address_documents_forming_balance_v1` | `FACTUAL_LIST` | P0 |
| AQ-B1-10 | За какие годы/месяцы в базе есть активность? | `period_coverage_profile` | - | `period_from`, `period_to`, `organization`, `limit` | `ACCOUNTING_REGISTER` | `address_period_coverage_profile_v1` | `FACTUAL_SUMMARY` | B1 |
| AQ-B1-11 | Какие типы документов чаще всего и какие разделы учета заполнены/пустые? | `document_type_and_account_section_profile` | - | `period_from`, `period_to`, `organization`, `limit` | `ACCOUNTING_REGISTER`, `DOCUMENT` | `address_document_type_and_account_section_profile_v1` | `FACTUAL_SUMMARY` | B1 |
| AQ-P1-10 | Дай обороты по счету 51 за период | `account_turnover_snapshot` | `account`, `period_from`, `period_to` | `organization`, `counterparty`, `limit` | `ACCOUNTING_REGISTER`, `DOCUMENT` | - (not implemented) | `LIMITED_WITH_REASON` | P1 |
| AQ-P1-11 | Дай список документов по типу за период | `list_documents_by_type` | `document_type`, `period_from`, `period_to` | `organization`, `counterparty`, `contract`, `limit` | `DOCUMENT`, `DOCUMENT_JOURNAL` | - (not implemented) | `LIMITED_WITH_REASON` | P1 |
| AQ-P2-12 | Покажи технические константы конфигурации | `unsupported_for_v1` | - | - | `CONSTANT` | - | `LIMITED_WITH_REASON` | P2 |
@ -50,6 +52,8 @@
Реально реализованы в runtime:
- `period_coverage_profile`
- `document_type_and_account_section_profile`
- `list_open_contracts`
- `open_items_by_counterparty_or_contract`
- `list_documents_by_counterparty`

View File

@ -0,0 +1,45 @@
# Статус сложных вопросов и карта переиспользования (2026-04-02)
Контур: `question_mode=address_query`
## 1. Что реально есть в коде сейчас
1. Сложная форма вопроса распознается:
- `AddressQueryShape` содержит `COMPOUND_FACTUAL_QUERY`.
- `classifyAddressQueryShape()` детектирует compound-сигналы.
2. Но runtime multi-step исполнения нет:
- `AddressIntent` в runtime ограничен P0-набором + `unknown`.
- В `resolveAddressIntent()` нет management/P1 intent-ов (`account_turnover_snapshot`, `list_documents_by_type`, lifecycle/aging/risk intents).
- В `addressRecipeCatalog.ts` нет recipe под сложные aggregate/comparative management-вопросы.
- В `AddressQueryService` неизвестный intent уходит в `LIMITED_WITH_REASON` (`category=unsupported`), а не в multi-step plan execution.
Итог: мы не "забили", а остановились на стабилизации P0 и рельсах; сложные вопросы остались в detection/design слое, но не доведены до execution слоя.
## 2. Что уже можно переиспользовать без переписывания
1. `Decompose -> Resolve -> Execute -> Compose` каркас уже рабочий.
2. У нас есть зрелый debug-контракт (`reasons`, `limited_reason_category`, stage status), его можно сохранить и расширять.
3. Follow-up context слой уже есть и пригоден для management-цепочек.
4. Gate-механика Step-0 и nightly regression уже в прод-ритме.
5. Для общего домена уже есть:
- смысловая декомпозиция 40 вопросов;
- route-модель `R01..R09`;
- batch rollout (`B1..B5`);
- live-подтверждение первой группы (`Q1..Q5`) через Batch-0 probe.
## 3. Что усиливать в продуктовом плане
1. Не внедрять домены "по одному интенту", а только batch-пачками с gate.
2. Для каждого route фиксировать:
- fact-источник (`movement` vs `document`);
- ключи фильтрации (`*_Key`);
- метрики и формулы;
- правила сортировки и tie-break.
3. Для сложных C4 вопросов сначала включить multi-step executor, потом запускать quality/risk домен.
## 4. Ближайший практический путь
1. Закрыть Batch-1 (`Q1..Q7`, `Q28`) на базе уже подтвержденных `R01/R02` + `R03` + часть `R07`.
2. После Batch-1 перейти к lifecycle (Batch-2), не смешивая его с risk/аномалиями.
3. Каждую пачку закрывать run-pack артефактами и обязательным comparator к baseline.

View File

@ -0,0 +1,41 @@
# Contracts-By-Counterparty Fix Report (2026-04-02)
## Problem (live repro)
- Query `покажи договора все по жуковке 51` was not handled as a contract-list-by-anchor scenario.
- Query often fell into wrong lanes (`list_documents_by_contract` with `missing_required_filters`, or broad fallback lists).
## Implemented fixes
1. Added dedicated intent: `list_contracts_by_counterparty`.
2. Added dedicated recipe: `address_contracts_by_counterparty_v1` (contract catalog based).
3. Added compose output branch for contract list answers.
4. Updated decompose/filter/resolve/runtime to require and carry `counterparty` anchor for this intent.
5. Improved loose anchor extraction for `по <anchor> <number>` (e.g. `по жуковке 51`).
6. Prevented false `contract` extraction (`contract="все"`) for this intent.
7. Disabled broad unrelated fallback for doc/bank intents when anchor is not matched (`filterByAnchors` guard).
8. Added historical-window recovery for doc/bank anchor lookups (retry with ascending period sort when all-time latest slice misses old anchors).
9. Added short follow-up year parsing (`теперь за 21` -> `2021-01-01..2021-12-31`).
10. Added dynamic counterparty resolver via live 1C catalog (`Справочник.Контрагенты`) without hardcoded client dictionaries:
- anchor canonicalization now happens before main recipe execution;
- resolved value is stored in `anchor_value_resolved`;
- extraction `raw` value is preserved in `anchor_value_raw`;
- catalog list is cached for 2 minutes to avoid repeated latency.
## Validation
- Unit tests: `tests/addressQueryRuntimeM23.test.ts` -> 163/163 passed.
- Build: `npm run build` -> passed.
- Targeted live run:
- run id: `Address_Contracts_Zhukovka_Targeted_AfterFix_2026-04-02_v3`
- semantic pass: 3/3
- route pass: 2/3
- factual pass: `покажи договора по свк` and `покажи договора все по жуковке 51`
- docs query `покажи документы все по жуковке 51` now returns clean `empty_match` (no broad unrelated fallback list)
- User repro validation run:
- run id: `Address_UserRepro_Followup_Zhukovka_AfterFix_2026-04-02`
- `покажи заказчиков за 20 год` -> factual (2020)
- `теперь за 21` -> factual with extracted period `2021-01-01..2021-12-31`
- `покажи доки по жуковке за все время` and `...жуковке 51...` -> factual via historical-window recovery (2017 row found)
## Current status
- Contract-list route is implemented and operational.
- `жуковке 51` is now canonicalized to the real counterparty from 1C catalog (`ТСЖ \Жуковка 51\`) in runtime without static dictionaries.
- Remaining accuracy risk is generic ambiguity for very short anchors (when multiple counterparties fit equally); this now degrades safely via low-confidence/ambiguous resolver path.

View File

@ -255,3 +255,21 @@ Core metrics:
2. Для каждого домена есть полный комплект артефактов (docs + question set + run artifacts).
3. Global baseline-паки не деградируют после каждого включения.
4. `global_execution_checklist_v1.md` отражает актуальный финальный статус.
## 13. Wave-1 Kickoff Status (2026-04-02)
Первая волна расширения (`Batch-1: Q1..Q7 + Q28`) переведена в управляемый стартовый режим:
1. Master checker:
- `step4_wave1_batch1_master_checker_v1.md`
2. Авто-checker готовности:
- `scripts/check_address_wave1_batch1_readiness.py`
- отчет: `wave1_batch1_readiness_report_2026-04-02.md`
3. Phase A артефакты:
- `domain_general_batch1_foundation_card_v1.md`
- `domain_general_batch1_acceptance_2026-04-02_phaseA.json`
- `step4_wave1_batch1_phaseA_backlog_v1.md`
Текущее решение: `READY_FOR_PHASE_A` (можно начинать по фазам, без прямого включения Batch-1 intents в production-path до закрытия Phase B/C gate).

View File

@ -0,0 +1,154 @@
# Domain Card — general_batch1_foundation V1
Дата: `2026-04-02`
Домен: `general_batch1_foundation`
Статус: `active` (Phase A prepared, Phase B runtime intents implemented, Phase C pending)
Владелец: `Address Runtime Team`
## 1. Scope
Кратко: домен закрывает стартовый управленческий слой общего домена (`Q1..Q7 + Q28`) без multi-intent и без quality/risk аналитики.
In-scope intents:
1. `period_coverage_profile` (`Q1`, `Q2`, `Q3`)
2. `document_type_and_account_section_profile` (`Q4`, `Q5`)
3. `counterparty_population_and_roles` (`Q6`, `Q7`)
4. `contract_usage_overview` (`Q28`)
Out-of-scope:
1. lifecycle/cohort (`Q8+`)
2. revenue/supplier/aging/risk блоки (`Q14+`, `Q33+`, `Q39+`)
3. `COMPOUND_FACTUAL_QUERY` multi-step execution
## 2. Intent Contract
### 2.1 `period_coverage_profile`
- `query_shape`: `FACTUAL_SUMMARY`
- `required_filters`: `[]`
- `optional_filters`: `[period_from, period_to, organization, limit]`
- `resolver_signals`: `годы`, `периоды`, `самый активный год`, `самый активный месяц`
- `ambiguity_rules`: если вопрос содержит одновременно `год` и `месяц`, приоритет у `месяц`-ранжирования
- `fallback_policy`: при пустом окне периода разрешен controlled broaden до доступного окна с явным пояснением
### 2.2 `document_type_and_account_section_profile`
- `query_shape`: `FACTUAL_SUMMARY`
- `required_filters`: `[]`
- `optional_filters`: `[period_from, period_to, organization, limit]`
- `resolver_signals`: `типы документов`, `чаще всего документы`, `разделы учета`, `заполнены/не используются`
- `ambiguity_rules`:
`типы документов` -> профиль типов;
`разделы учета` -> профиль sections (первые 2 символа кода счета, дебет+кредит)
- `fallback_policy`: только внутри intent; не переключать на `period_coverage_profile`
### 2.3 `counterparty_population_and_roles`
- `query_shape`: `FACTUAL_SUMMARY`
- `required_filters`: `[]`
- `optional_filters`: `[period_from, period_to, organization, limit]`
- `resolver_signals`: `сколько контрагентов`, `сколько заказчиков`, `сколько поставщиков`, `типы контрагентов`
- `ambiguity_rules`: роль `customer/supplier/mixed` определяется по account/direction сигнатуре, не по свободному тексту
- `fallback_policy`: при неоднозначной роли возвращать `mixed/unknown` bucket с пояснением, без ложной категоризации
### 2.4 `contract_usage_overview`
- `query_shape`: `FACTUAL_SUMMARY`
- `required_filters`: `[]`
- `optional_filters`: `[period_from, period_to, organization, limit]`
- `resolver_signals`: `сколько всего договоров`, `сколько использовались`, `мертвые договоры`
- `ambiguity_rules`: `used` считается только при наличии factual связи договора с движением/документом
- `fallback_policy`: если нет стабильной связи на ключах, вернуть `LIMITED_WITH_REASON` (`recipe_visibility_gap`)
## 3. Recipe Mapping
Связка `intent -> recipe_id` должна совпасть с runtime catalog после Phase B.
| intent | recipe_id (runtime/planned) | mcp_method | expected_statuses |
| --- | --- | --- | --- |
| `period_coverage_profile` | `address_period_coverage_profile_v1` (runtime) | `POST /api/execute_query` | `matched_non_empty`, `no_raw_rows` |
| `document_type_and_account_section_profile` | `address_document_type_and_account_section_profile_v1` (runtime) | `POST /api/execute_query` | `matched_non_empty`, `no_raw_rows`, `materialized_but_not_matched` |
| `counterparty_population_and_roles` | `address_counterparty_population_roles_v1` (planned) | `POST /api/execute_query` | `matched_non_empty`, `materialized_but_not_matched`, `no_raw_rows` |
| `contract_usage_overview` | `address_contract_usage_overview_v1` (planned) | `POST /api/execute_query` | `matched_non_empty`, `recipe_visibility_gap`, `no_raw_rows` |
## 4. Anchor and Resolver Rules
- `anchor_type`: `period`, `organization` (в Batch-1 нет обязательного party anchor)
- `anchor_resolution_order`: explicit period -> organization -> default all-time
- `min_confidence`: `medium`
- `unresolved_behavior`: при неразрешенном required-filter (если появится в реализации) -> `LIMITED_WITH_REASON`, без псевдо-factual
## 5. Limited Reasons (taxonomy)
Разрешенные категории для домена:
1. `empty_match`
2. `recipe_visibility_gap`
3. `execution_error`
4. `unsupported`
Запрещено:
- выдавать factual при неподтвержденной метрике;
- смешивать `operations` и `documents` в одной метрике без явной оговорки.
## 6. Test Coverage
Unit:
1. resolver intent positives/negatives для 4 интентов Batch-1
2. extraction period filters (`YYYY`, `YYYY-MM`, `YYYY-MM-DD`)
3. role-split classifier tests (`customer/supplier/mixed`)
4. account-section parser tests (`code[:2]`)
Integration:
1. recipe selection per intent
2. execution status mapping
3. debug payload completeness
Live acceptance:
1. canonical questions
2. noisy/slang questions
3. follow-up chains
## 7. Gate Criteria
Domain gate:
- `strict_pass(route)=100%`
- `false_factual_rate=0`
- `execution_error_rate=0`
Global gate:
- baseline stress `102/102` сохраняется
- baseline follow-up `25/25` сохраняется
## 8. Rollout Plan
1. `shadow` — прогоны без влияния на production answer path.
2. `soft-enable` — включение под feature-flag только для Batch-1 intents.
3. `prod` — после green domain gate и global non-regression gate.
## 9. Artifacts
Обязательные артефакты:
1. `domain_general_batch1_foundation_card_v1.md`
2. `question_sets/domain_general_batch1_acceptance_2026-04-02_phaseA.json`
3. `runs/<run_id>/run_summary.json`
4. `runs/<run_id>/full_live_results.json`
5. `runs/<run_id>/failures_only.json`
6. `runs/<run_id>/README.md`
## 10. Change Log
- `2026-04-02` — создана карточка домена для Batch-1 новой волны (Phase A).
- `2026-04-02` — синхронизирован runtime status Phase B.1: в коде реализованы `period_coverage_profile` и `document_type_and_account_section_profile`.
- `2026-04-02` — реализованы `counterparty_population_and_roles` и `contract_usage_overview`; targeted live-pack `Q6/Q7/Q28` прошел `strict factual 9/9` (`2026-04-02_Address_Batch1_NextPack_Q6_Q7_Q28`).
- 2026-04-02 - hotfix slang count routing: скока/скок поставщиков|заказчиков стабильно маршрутизируются в counterparty_population_and_roles; targeted live-pack 2026-04-02_Address_SupplierCount_Targeted_AfterFix прошел strict factual 4/4.
- 2026-04-02 - hotfix follow-up slang variant: скок клиентов now maps to counterparty_population_and_roles; targeted live-pack 2026-04-02_Address_SupplierClient_Followup_AfterFix passed strict factual 3/3.

View File

@ -0,0 +1,444 @@
# Общий Домен Вопросов — Анализ и План Внедрения V1
Дата: 2026-04-02
Источник: `docs/ADDRESS/TEMP/ОБЩИЙ_ДОМЕН_ВОПРОСОВ.md`
Контур: `question_mode=address_query`
## 1. Ключевой вывод по текущему состоянию
1. Текущий runtime хорошо закрывает P0 address lookup/drilldown, но не закрывает управленческие агрегаты из общего домена.
2. Вопросы из общего домена требуют не только фильтрации, но и устойчивых агрегатов, ранжирования, cohort/lifecycle логики и сравнений между выборками.
3. Для точного забора данных нужен переход от текстовых anchor-match паттернов к key-based маршрутам (`*_Key`) и явным group-by query templates.
4. Для части вопросов нужен multi-step execution (сейчас `COMPOUND_FACTUAL_QUERY` только detection-only).
## 2. Разбор 40 вопросов по смысловым группам
### G1. Профиль данных и активности (Q1Q5)
Суть: «что есть в базе», активность по годам/месяцам, типы документов, заполненность контуров.
Сложность:
- C1: Q1, Q2, Q3, Q4
- C2: Q5
### G2. Контрагенты и жизненный цикл базы (Q6Q13)
Суть: численность, роли, активность в периоде, новые/ушедшие, одноразовые, долгоживущие.
Сложность:
- C1: Q6, Q7, Q8, Q9
- C3: Q10, Q11, Q12, Q13
### G3. Клиентская ценность, выручка, оплаты (Q14Q21)
Суть: вклад клиентов в деньги/частоту/средний чек, концентрация выручки.
Сложность:
- C2: Q14, Q15, Q16, Q17, Q18, Q19, Q20
- C3: Q21
### G4. Поставщики и выплаты (Q22Q27)
Суть: ключевые/малозначимые поставщики, частота операций, регулярность, неактивные.
Сложность:
- C2: Q22, Q23, Q24, Q25
- C3: Q26, Q27
### G5. Договорная база (Q28Q32)
Суть: total vs used, активность по суммам/документам, stale договоры, мультидоговорность контрагентов.
Сложность:
- C2: Q28, Q29, Q30
- C3: Q31, Q32
### G6. Дебиторка/кредиторка и хвосты (Q33Q38)
Суть: top debtors/creditors, старение долгов, сравнение проблемности customer vs supplier контуров.
Сложность:
- C2: Q33, Q36
- C3: Q34, Q35, Q38
- C4: Q37
### G7. Качество учета и риск-аномалии (Q39Q40)
Суть: подозрительные/неполные документы, разрозненные кейсы с высокой активностью.
Сложность:
- C4: Q39, Q40
## 3. Уровни сложности (для реализации пачками)
- C1: одношаговый aggregate/list по одной fact-проекции.
- C2: агрегат + период/роль + ранжирование top/bottom.
- C3: lifecycle/cohort и/или временные сравнения с вычислением first/last activity.
- C4: multi-step comparative и quality-scoring (несколько подзапросов + сводка).
## 4. Маршруты данных 1С (target route set)
Ниже маршруты в терминах «что нужно строить» для точного забора данных.
### R01. `period_coverage_profile`
Назначение: Q1Q3.
Source objects:
- `РегистрБухгалтерии.Хозрасчетный`
- `Документ.*` (для проверки активности по документным датам)
Key metrics:
- min/max дата в фактах
- count операций по годам
- count операций по месяцам
Output:
- покрытие периодов
- топ активный год/месяц
### R02. `document_type_usage_profile`
Назначение: Q4, часть Q5.
Source objects:
- `ДокументЖурнал.*`
- `Документ.*`
Key metrics:
- count документов по `Recorder_Type`/типу документа
- доля каждого типа
Output:
- рейтинг типов документов
- профиль заполненности контуров по типам
### R03. `counterparty_population_and_roles`
Назначение: Q6, Q7.
Source objects:
- `Справочник.Контрагенты`
- факты движения/документы для определения роли в деятельности
Key metrics:
- total уникальных контрагентов
- active контрагенты
- распределение customer/supplier/mixed
Output:
- сводка по размеру и структуре базы контрагентов
### R04. `counterparty_activity_lifecycle`
Назначение: Q8Q13, Q26Q27.
Source objects:
- `РегистрБухгалтерии.Хозрасчетный` (через контрагентные аналитики)
- `Документ.*` банковых контуров
Key metrics:
- first_activity_date
- last_activity_date
- ops_count
- active_year_flags
Output:
- active in year/all-time
- new/lost counterparties
- one-time counterparties
- longest-running counterparties
- regular vs episodic, stale entries
### R05. `customer_revenue_and_payments`
Назначение: Q14Q21.
Source objects:
- `Документ.ПоступлениеНаРасчетныйСчет`
- `РегистрБухгалтерии.Хозрасчетный` (в т.ч. account 62/76 для customer-контура)
Key metrics:
- total_inflow_by_counterparty
- payment_ops_count
- avg_check
- max_single_payment
- revenue_share
Output:
- top/bottom customers
- частота оплат
- средний чек
- концентрация выручки
### R06. `supplier_payouts_profile`
Назначение: Q22Q25.
Source objects:
- `Документ.СписаниеСРасчетногоСчета`
- `РегистрБухгалтерии.Хозрасчетный` (account 60/76)
Key metrics:
- total_outflow_by_supplier
- payout_ops_count
- active_supplier_flags
Output:
- top/bottom suppliers by payouts
- suppliers by operations frequency
### R07. `contract_usage_and_value`
Назначение: Q28Q32.
Source objects:
- `Справочник.ДоговорыКонтрагентов`
- факты движений/документов с `Договор*_Key`
Key metrics:
- contracts_total
- contracts_used
- amount_by_contract
- docs_count_by_contract
- last_activity_by_contract
Output:
- used vs unused contracts
- top contracts by amount/docs
- stale contracts
- counterparties with multi-contract structure (working vs dead)
### R08. `open_items_and_aging`
Назначение: Q33Q38.
Source objects:
- `РегистрБухгалтерии.Хозрасчетный`
- при необходимости специализированный register/обороты для aging
Key metrics:
- open_balance_by_party
- debt_age_buckets
- oldest_open_items
Output:
- top debtors/creditors
- old small tails
- supplier/customer open-item contrasts
- oldest unresolved debts
### R09. `accounting_quality_risk_scan`
Назначение: Q39Q40.
Source objects:
- `Документ.*`
- `ДокументЖурнал.*`
- `РегистрБухгалтерии.Хозрасчетный`
Deterministic checks (v1):
- неполные обязательные поля
- аномальные суммы/частоты
- противоречивые связи контрагент-договор-документ
- высокая активность при нестабильной структуре данных
Output:
- risk-ranked список документов/контрагентов
- причины попадания в риск
## 5. Критически важные требования к точности маршрутов
1. Key-first фильтрация:
- для контрагента/договора использовать `*_Key`, а не только текстовые представления.
2. Единая каноническая проекция фактов:
- `event_date`, `doc_ref`, `doc_type`, `amount`, `direction`, `account_dt/kt`, `counterparty_key`, `contract_key`, `organization_key`.
3. Сигнатура роли контрагента:
- customer/supplier определять по account/направлению движения, а не по свободному тексту вопроса.
4. Разделение «операции» vs «документы»:
- в каждом route явно фиксировать базу расчета (движения или документы), чтобы не смешивать метрики.
5. Multi-step вопросы (C4) исполнять как план из подзапросов:
- сначала отдельные factual подвыборки,
- затем агрегирование/сравнение в composer.
## 6. Что нужно расширить в runtime перед внедрением домена
1. Новые intents (management layer):
- `period_coverage_profile`
- `document_type_usage`
- `counterparty_lifecycle_profile`
- `customer_revenue_ranking`
- `supplier_payout_ranking`
- `contract_portfolio_profile`
- `open_items_aging_profile`
- `accounting_quality_anomalies`
2. Новые recipe templates:
- `group_by_year_month`
- `group_by_counterparty`
- `group_by_contract`
- `aging_bucket`
- `quality_scan`
3. Новый execution path для compound/comparative:
- multi-step executor для C4 (в текущем V1 этого нет).
4. Composer расширение:
- табличные ранжированные summary-блоки (top/bottom, доли, buckets, risk reasons).
## 7. План внедрения пачками
### Batch 0 (обязательный foundation)
Scope:
- route probes по полям `counterparty_key/contract_key` и качеству join.
- подтверждение query templates для group-by на live.
Artifacts:
- `management_route_probe_report_*.md`
- baseline query fixtures.
Gate:
- ни одного route без подтвержденного key-based фильтра.
### Batch 1 (C1/C2, быстрый бизнес-эффект)
Вопросы:
- Q1Q7, Q28.
Routes:
- R01, R02, R03, часть R07.
Результат:
- общий профиль базы + структура контрагентов + базовая договорная метрика.
### Batch 2 (C3 lifecycle)
Вопросы:
- Q8Q13, Q26, Q27, Q31, Q32.
Routes:
- R04, часть R07.
Результат:
- устойчивый lifecycle слой (new/lost/one-time/long-term/stale).
### Batch 3 (ценность и концентрация)
Вопросы:
- Q14Q25, Q29, Q30.
Routes:
- R05, R06, часть R07.
Результат:
- клиентская/поставщическая ценность и контрактные рейтинги.
### Batch 4 (задолженности и aging)
Вопросы:
- Q33Q38.
Routes:
- R08.
Результат:
- дебиторка/кредиторка с age-buckets и сравнительной аналитикой.
### Batch 5 (quality/risk)
Вопросы:
- Q39Q40.
Routes:
- R09.
Результат:
- управленческий quality/risk слой с объяснимыми причинами аномалий.
## 8. Acceptance и рельсовые критерии для каждой пачки
1. Domain pack обязателен:
- canonical
- noisy/slang
- follow-up chains
- multi-step (для C4)
2. Gate каждой пачки:
- `strict_pass(route)=100%` на domain pack
- `false_factual_rate=0`
- `execution_error_count=0`
3. После каждой пачки:
- обязательный global regression `102 + 25`
- comparator against baseline PASS
4. Обновление docs:
- `runtime_readiness_matrix_v1.md`
- `address_scenario_matrix.md`
- domain card + run artifacts
## 9. Риски и как их снимать
1. Риск: ложные агрегаты из-за текстовых anchor-match.
- Мера: key-based joins и route probes до включения intent.
2. Риск: смешение операций и документов в одной метрике.
- Мера: отдельные route contracts для movement-based и document-based метрик.
3. Риск: срыв на multi-step вопросах.
- Мера: отдельный compound executor для C4, без неявных fallback в single-intent.
4. Риск: рост R&D хаоса по доменам.
- Мера: только batch rollout + обязательный gate + closeout per batch.
## 10. Практический next step (сейчас)
1. Запустить Batch 0:
- field-probe по key-полям для контрагента/договора в register/docs.
- зафиксировать финальный route contract для R01R03 и R07 (часть).
2. После Batch 0 сразу брать Batch 1 как первый production-ready срез общего домена.
Фактический статус на 2026-04-02:
- стартовая управленческая рамка Batch-1 зафиксирована в `step4_wave1_batch1_master_checker_v1.md`;
- readiness подтвержден авто-отчетом `wave1_batch1_readiness_report_2026-04-02.md` (`READY_FOR_PHASE_A`).
## 11. Полная матрица Q -> Route -> Complexity -> Batch
| Q | Краткий смысл | Route | Complexity | Batch |
|---|---|---|---|---|
| Q1 | годы покрытия базы | R01 | C1 | B1 |
| Q2 | самый активный год | R01/R02 | C1 | B1 |
| Q3 | самый активный месяц | R01 | C1 | B1 |
| Q4 | самые частые типы документов | R02 | C1 | B1 |
| Q5 | заполненность контуров учета | R02 (+R01) | C2 | B1 |
| Q6 | всего уникальных контрагентов | R03 | C1 | B1 |
| Q7 | заказчики/поставщики/прочие | R03 | C1 | B1 |
| Q8 | заказчики активные в году | R04 | C1 | B2 |
| Q9 | заказчики активные за все время | R04 | C1 | B2 |
| Q10 | новые заказчики в году | R04 | C3 | B2 |
| Q11 | заказчики, ушедшие после периода | R04 | C3 | B2 |
| Q12 | контрагенты с одной активностью | R04 | C3 | B2 |
| Q13 | самые долгоживущие контрагенты | R04 | C3 | B2 |
| Q14 | top заказчики по деньгам (all-time) | R05 | C2 | B3 |
| Q15 | top заказчики по деньгам (год) | R05 | C2 | B3 |
| Q16 | low-value активные заказчики | R05 | C2 | B3 |
| Q17 | кто платит чаще всего | R05 | C2 | B3 |
| Q18 | самые крупные разовые оплаты | R05 | C2 | B3 |
| Q19 | самый высокий средний чек | R05 | C2 | B3 |
| Q20 | низкий средний чек + много операций | R05 | C2/C3 | B3 |
| Q21 | концентрация выручки по клиентам | R05 | C3 | B3 |
| Q22 | top поставщики по выплатам (all-time) | R06 | C2 | B3 |
| Q23 | top поставщики по выплатам (период) | R06 | C2 | B3 |
| Q24 | минимальные выплаты среди активных | R06 | C2 | B3 |
| Q25 | поставщики с max числом операций | R06 | C2 | B3 |
| Q26 | регулярные vs эпизодические поставщики | R04/R06 | C3 | B2 |
| Q27 | давно неиспользуемые поставщики | R04 | C3 | B2 |
| Q28 | договоры: всего vs реально использованные | R07 | C2 | B1 |
| Q29 | top договоры по деньгам | R07 | C2 | B3 |
| Q30 | top договоры по числу документов | R07 | C2 | B3 |
| Q31 | давно неиспользуемые договоры | R07 | C3 | B2 |
| Q32 | мультидоговорные контрагенты + рабочие договоры | R07 | C3 | B2 |
| Q33 | top дебиторы на сейчас | R08 | C2 | B4 |
| Q34 | мелкие, но старые долги | R08 | C3 | B4 |
| Q35 | поставщики с незакрытыми расчетами в нашу пользу | R08 | C3 | B4 |
| Q36 | top кредиторы (кому должны) | R08 | C2 | B4 |
| Q37 | где больше проблемных хвостов: customer vs supplier | R08 (+compound compare) | C4 | B4 |
| Q38 | самые старые незакрытые задолженности | R08 | C3 | B4 |
| Q39 | документы с ошибками/неполнотой/подозрительностью | R09 | C4 | B5 |
| Q40 | контрагенты с активностью и нестабильностью данных | R09 | C4 | B5 |
## 12. Статус Batch-0 по первой группе (live-подтверждение)
На дату `2026-04-02` выполнен live probe первой группы общего домена (`Q1..Q5`) через MCP endpoint `POST /api/execute_query?channel=default`.
Артефакт:
- `management_route_probe_report_g1_2026-04-02.md`
Итог:
1. `R01 period_coverage_profile` подтвержден на live-данных (`Q1`, `Q3`).
2. `R02 document_type_usage_profile` подтвержден на live-данных (`Q2`, `Q4`).
3. Для `Q5` подтверждена реализуемость через account-section aggregation (по первым двум символам кода счета, дебет+кредит), требуется формализовать policy для "почти не используется" (порог/квантиль + исключения по off-balance/служебным кодам).

View File

@ -80,6 +80,21 @@
- [ ] Resolver hardening для более широкого набора anchor-типов (без company-specific словарей).
- [ ] CI/nightly automation полного regression-пака.
#### Step-4 Wave-1 (general domain, Batch-1: Q1..Q7 + Q28)
- [x] Создан master checker новой волны: `step4_wave1_batch1_master_checker_v1.md`.
- [x] Добавлен автоматический readiness checker: `scripts/check_address_wave1_batch1_readiness.py`.
- [x] Выпущен readiness report: `wave1_batch1_readiness_report_2026-04-02.md` (`READY_FOR_PHASE_A`).
- [x] Phase A стартован:
- `domain_general_batch1_foundation_card_v1.md`
- `domain_general_batch1_acceptance_2026-04-02_phaseA.json`
- `step4_wave1_batch1_phaseA_backlog_v1.md`
- [ ] Phase A закрыт (intent naming freeze + negative cases).
- [ ] Phase B закрыт (resolver/types/recipes/compose для Batch-1).
- [ ] Phase C закрыт (domain gate + global non-regression gate).
- [x] Phase B.1 начат: реализован первый Batch-1 intent `period_coverage_profile` (resolver + types + recipe + compose), unit/build green.
- [x] Phase B.1 progress: реализован второй Batch-1 intent `document_type_and_account_section_profile` (resolver + classifier + recipe + compose), unit/build green (`107 passed`).
## Документация (code-sync)
- [x] Базовые docs синхронизированы с текущим runtime-кодом (`README`, `address_scenario_matrix`, `query_recipes`, `runtime_readiness_matrix`, `address_runtime_contracts`, `runtime_integration_plan`).

View File

@ -0,0 +1,118 @@
# LLM-First Pre-Gate Contract V1 (2026-04-02)
## Цель
Убрать зависимость от ручного пополнения сленговых словарей на входе в `address_query`.
Новый принцип:
1. Сначала выполняется `LLM pre-decompose` (попытка канонизации пользовательского текста).
2. Затем rule-gate работает как валидатор маршрута, а не как первичный смысловой парсер.
3. В debug и в run-артефактах фиксируется единый контракт канонизации + метрики качества.
## Что внедрено в код
### 1. Контракт канонизации (новый модуль)
Файл:
- `llm_normalizer/backend/src/services/address_runtime/predecomposeContract.ts`
Экспорт:
- `buildAddressLlmPredecomposeContractV1(...)`
Схема контракта:
- `schema_version: address_llm_predecompose_contract_v1`
- `source_message`
- `canonical_message`
- `mode`, `mode_confidence`
- `query_shape`, `query_shape_confidence`
- `intent`, `intent_confidence`
- `entities` (`account`, `counterparty`, `contract`, `document_type`, `document_ref`, `organization`)
- `period` (`scope`, `period_from`, `period_to`, `as_of_date`, `has_explicit_period`)
- `aggregation_profile` (`management_profile | list_lookup | balance_snapshot | open_items | unknown`)
### 2. Прокидка контракта в runtime debug
Файл:
- `llm_normalizer/backend/src/services/assistantService.ts`
Добавлено:
- `llm_predecompose_contract` в address-debug payload.
- Прокидка `address_*` полей pre-decompose/gate в debug deep-ответов (для случаев, когда address lane заблокирован и финальный ответ не address).
### 3. LLM-first поведение pre-decompose
Файл:
- `llm_normalizer/backend/src/services/assistantService.ts`
Сделано:
- Убрана ранняя блокировка `not_address_like` перед попыткой LLM нормализации.
- Убрана отсечка кандидатов по `execution_readiness=no_route` + regex в pre-decompose candidate extraction.
- Добавлен сигнал gate: `llm_canonical_candidate_detected`.
### 4. Метрики в live-runner
Файл:
- `scripts/run_address_live_slang_stress.py`
`run_summary.json` теперь включает:
- `totals.llm_decomposition_attempted_count`
- `totals.llm_decomposition_applied_count`
- `totals.llm_fallback_count`
- `totals.llm_fallback_rate`
- `totals.tool_gate_blocked_count`
- `totals.tool_gate_blocked_rate`
- `distributions.tool_gate_decision`
- `distributions.tool_gate_reason`
- `address_llm_predecompose_metrics.overall`
- `address_llm_predecompose_metrics.by_intent`
### 5. Intent-усиление для roster-формулировок
Файл:
- `llm_normalizer/backend/src/services/addressIntentResolver.ts`
Добавлен сигнал lifecycle для формулировок вида:
- `кто у нас заказчики вообще`
- `какие есть заказчики/клиенты`
- `кто есть заказчики в базе`
## Валидация
### Unit/Integration tests
- `tests/assistantAddressLlmPredecompose.test.ts` -> pass
- `tests/addressQueryRuntimeM23.test.ts` -> pass
### Live run (targeted)
- `docs/ADDRESS/runs/2026-04-02_Address_LLM_First_Gate_Probe_WithMetrics/run_summary.json`
- `strict_pass_rate = 1.0`
- `tool_gate_blocked_rate = 0.0`
- `docs/ADDRESS/runs/2026-04-02_Address_GateBlock_Probe_WithMetrics_02/run_summary.json`
- подтвержден захват блокировки gate:
- `tool_gate_blocked_count = 1`
- `tool_gate_blocked_rate = 0.5`
- `address_llm_predecompose_metrics.by_intent.unknown.gate_block_rate = 1.0`
## Что это дает в процессной модели
1. Мы больше не “размазываем” смысловую обработку по regex-словарам.
2. У нас есть наблюдаемая метрика, когда gate начинает душить реальный поток:
- `gate_block_rate` overall/by intent.
3. У нас есть наблюдаемая метрика костыльности:
- `fallback_rate` overall/by intent.
4. Расширение доменов можно вести через route/recipe-пакеты и acceptance-паки, а не через бесконечные сленг-патчи.

View File

@ -0,0 +1,112 @@
# Management Route Probe Report — General Domain Group 1 (Q1Q5)
- Дата/время запуска: `2026-04-02T18:15:58+03:00`
- Endpoint: `http://127.0.0.1:6003`
- Channel: `default`
- Контур: `question_mode=address_query`, Batch-0 route probes
## Вердикт по вопросам группы 1
- Q1 (покрытие периодов): **PASS**
- Q2 (самый активный год по документам): **PASS**
- Q3 (самый активный месяц по операциям): **PASS**
- Q4 (наиболее частые типы документов): **PASS**
- Q5 (наиболее/наименее заполненные разделы учета): **PASS**
## Q1 — Покрытие базы и активность по годам
- Мин период: `2014-05-27T12:00:00Z`
- Макс период: `2030-08-03T12:00:00Z`
- Всего операций в регистре: `12659`
- Годы с данными: `2014..2030` (уникальных лет: `13`)
- Топ годов по количеству операций:
- `2015`: `3212`
- `2019`: `2273`
- `2018`: `2234`
- `2020`: `1391`
- `2017`: `1376`
- `2016`: `1187`
- `2021`: `553`
- `2014`: `235`
## Q2 — Самый активный год по количеству документов
- Метрика: `COUNT(DISTINCT Регистратор)` по годам на `РегистрБухгалтерии.Хозрасчетный`.
- Топ годов:
- `2019`: `1004`
- `2018`: `703`
- `2015`: `671`
- `2016`: `577`
- `2020`: `536`
- `2017`: `456`
- `2021`: `308`
- `2014`: `115`
- Вывод: route дает корректный ranking по документной активности в контуре движений.
## Q3 — Самый активный месяц по количеству операций
- Метрика: `COUNT(*)` по `НАЧАЛОПЕРИОДА(Период, МЕСЯЦ)`.
- Топ месяцев:
- `2015-02`: `1249`
- `2015-01`: `924`
- `2018-08`: `854`
- `2019-05`: `536`
- `2017-12`: `503`
- `2020-06`: `305`
- `2020-03`: `297`
- `2019-09`: `273`
- `2018-11`: `261`
- `2015-12`: `225`
- `2018-12`: `213`
- `2019-08`: `185`
## Q4 — Наиболее частые типы документов
- Метрика: `COUNT(DISTINCT Регистратор)` по `ПРЕДСТАВЛЕНИЕ(ТИПЗНАЧЕНИЯ(Регистратор))`.
- Топ типов:
- `Списание с расчетного счета`: `2352`
- `Поступление товаров и услуг`: `486`
- `Регламентная операция`: `414`
- `Поступление на расчетный счет`: `323`
- `Счет-фактура полученный`: `262`
- `Операция (бухгалтерский и налоговый учет)`: `147`
- `Реализация товаров и услуг`: `123`
- `Отражение зарплаты в регламентированном учете`: `87`
- `Приходный кассовый ордер`: `76`
- `Расходный кассовый ордер`: `73`
- `Требование-накладная`: `45`
- `Передача товаров`: `16`
## Q5 — Заполненность разделов учета
- Метод: агрегирование по первым двум цифрам кода счета (дебет + кредит).
- Топ разделов:
- `90` `Продажи`: `2973`
- `51` `Расчетные счета`: `2967`
- `60` `Расчеты с поставщиками и подрядчиками`: `2793`
- `44` `Расходы на продажу`: `2422`
- `68` `Расчеты по налогам и сборам`: `1554`
- `10` `Материалы`: `1494`
- `19` `НДС по приобретенным ценностям`: `1490`
- `91` `Прочие доходы и расходы`: `1324`
- `41` `Товары`: `1312`
- `76` `Расчеты с разными дебиторами и кредиторами`: `1240`
- Разделы с минимальной активностью (среди использованных):
- `58` `Финансовые вложения`: `2`
- `81` `Собственные акции (доли)`: `2`
- `80` `Уставный капитал`: `5`
- `75` `Расчеты с учредителями`: `16`
- `55` `Специальные счета в банках`: `18`
- `84` `Нераспределенная прибыль (непокрытый убыток)`: `20`
- `26` `Общехозяйственные расходы`: `51`
- `71` `Расчеты с подотчетными лицами`: `76`
- `43` `Готовая продукция`: `81`
- `50` `Касса`: `163`
## Что подтверждено для продуктового плана
- `R01 period_coverage_profile`: подтвержден (Q1/Q3).
- `R02 document_type_usage_profile`: подтвержден (Q2/Q4).
- `Q5` закрывается route-контрактом через account-section aggregation; нужна фиксация правила для "почти не используются" (порог/квантиль).
## Ограничения и требования к точности
- Q2/Q4 измеряются по `Регистратор` в движениях; это нужно явно закрепить как `movement-based document activity`.
- Для Q5 нельзя опираться только на raw счета: обязателен post-processing `section = account_code[:2]`.
- Есть записи с редкими/системными кодами (например off-balance); требуется whitelist/normalization policy для бизнес-отчета.
## Следующий шаг Batch-0
- Зафиксировать route contracts для `R01` и `R02` в runtime docs.
- Добавить acceptance-вопросы Q1..Q5 в domain pack с жесткой проверкой метрик и сортировки.

View File

@ -44,6 +44,8 @@
| recipe_id | intent | purpose | required_filters | optional_filters | query_template | account_scope_mode |
|---|---|---|---|---|---|---|
| `address_period_coverage_profile_v1` | `period_coverage_profile` | профиль покрытия периодов + топ год/месяц активности | - | `period_from`, `period_to`, `organization`, `limit` | `period_profile` | `preferred` |
| `address_document_type_and_account_section_profile_v1` | `document_type_and_account_section_profile` | профиль типов документов + заполненность разделов учета | - | `period_from`, `period_to`, `organization`, `limit` | `document_section_profile` | `preferred` |
| `address_movements_payables_v1` | `list_payables_counterparties` | movement-срез по обязательствам | - | `as_of_date`, `counterparty`, `contract`, `limit` | `movements` | `preferred` |
| `address_movements_receivables_v1` | `list_receivables_counterparties` | movement-срез по требованиям | - | `as_of_date`, `counterparty`, `contract`, `limit` | `movements` | `preferred` |
| `address_open_contracts_candidates_v1` | `list_open_contracts` | кандидаты незакрытых договоров | - | `as_of_date`, `organization`, `limit` | `movements` | `preferred` |
@ -59,6 +61,8 @@
- Базовый max limit: `200`.
- Расширенный max limit (`1000`) для:
- `period_coverage_profile`;
- `document_type_and_account_section_profile`;
- `documents/bank by counterparty|contract`;
- `open_items_by_counterparty_or_contract`;
- `list_open_contracts`.
@ -96,7 +100,7 @@ Legacy совместимость:
Фактическая реализация `composeStage` сейчас отдает:
- `FACTUAL_SUMMARY` в основном для `account_balance_snapshot`;
- `FACTUAL_SUMMARY` для `account_balance_snapshot`, `period_coverage_profile`, `document_type_and_account_section_profile`;
- для остальных factual intents — `FACTUAL_LIST`.
## 9) Guardrails

View File

@ -27,6 +27,8 @@
| AQ-P0-08 | list_documents_by_contract | STRUCTURALLY_VISIBLE | LIVE_QUERYABLE_WITH_LIMITS | document-filter может обнулять rows по узкому окну | contract docs fallback + resolver hardening |
| AQ-P0-08B | bank_operations_by_contract | STRUCTURALLY_VISIBLE | LIVE_QUERYABLE_WITH_LIMITS | устойчивость зависит от contract anchor качества | усилить contract normalization и follow-up carryover |
| AQ-P0-09 | documents_forming_balance | STRUCTURALLY_VISIBLE | LIVE_QUERYABLE_WITH_LIMITS | account-family чувствителен к row-shape/materialization | продолжить materialization diagnostics |
| AQ-B1-10 | period_coverage_profile | STRUCTURALLY_VISIBLE | LIVE_QUERYABLE_WITH_LIMITS | новый management intent, еще не закрыт domain-gate Batch-1 | закрыть Phase B/C gate на `Q1..Q7 + Q28` |
| AQ-B1-11 | document_type_and_account_section_profile | STRUCTURALLY_VISIBLE | LIVE_QUERYABLE_WITH_LIMITS | новый management intent, требуется gate-проверка ranking стабильности | закрыть Phase B/C gate на `Q1..Q7 + Q28` |
| AQ-P1-10 | account_turnover_snapshot | STRUCTURALLY_VISIBLE | UNKNOWN | intent/recipe отсутствуют в runtime | планировать как отдельный домен Step-4 |
| AQ-P1-11 | list_documents_by_type | STRUCTURALLY_VISIBLE | UNKNOWN | intent/recipe отсутствуют в runtime | планировать как отдельный домен Step-4 |
@ -35,6 +37,9 @@
- В runtime реализованы by-contract intents:
- `list_documents_by_contract`
- `bank_operations_by_contract`
- В runtime реализованы первые management intents Batch-1:
- `period_coverage_profile`
- `document_type_and_account_section_profile`
- `COMPOUND_FACTUAL_QUERY` остается detection-only (без multi-intent execution).
- Финальные gate-артефакты стабильности:
- stress `102/102`: `docs/ADDRESS/runs/2026-04-02_Address_Slang_Live_Stress_2026-04-02_12-57-27/run_summary.json`

View File

@ -0,0 +1,60 @@
# Step-4 Wave-1 Batch-1 Master Checker V1
Дата: 2026-04-02
Контур: `question_mode=address_query`
Scope Batch-1: `Q1..Q7 + Q28` (первая волна общего домена)
## 1. Go/No-Go Checker (перед стартом кодирования)
Источник авто-проверки:
- `wave1_batch1_readiness_report_2026-04-02.md`
- script: `python scripts/check_address_wave1_batch1_readiness.py`
Результат на 2026-04-02:
- **READY_FOR_PHASE_A**
Контрольные пункты:
- [x] Step-0 pre-prod rails закрыт.
- [x] Базовый Step-4 план зафиксирован.
- [x] Анализ общего домена (40 вопросов) зафиксирован.
- [x] Live probe первой группы (`Q1..Q5`) зафиксирован.
- [x] Карта статуса сложных вопросов и reuse-слой зафиксированы.
- [x] Baseline stress `102/102`.
- [x] Baseline follow-up `25/25`.
- [x] Nightly regression green.
## 2. Гейтинг Batch-1 (чтобы не "вкорячивать")
Batch-1 можно переводить в runtime только после закрытия трех фаз:
1. **Phase A — Design/Contract**
- domain card для Batch-1;
- финализированный intent contract;
- acceptance question set (canonical + noisy + follow-up).
2. **Phase B — Runtime Prep**
- intent resolver additions;
- filter extractor additions;
- recipe catalog additions;
- composer output contract для ranking/summary формата.
3. **Phase C — Live Gate**
- domain acceptance run-pack;
- global regression (`102 + 25`);
- comparator PASS к baseline.
## 3. Статус текущей волны
- [x] **Phase A стартован** (документационный контур и readiness checker подготовлены).
- [ ] Phase A закрыт.
- [x] Phase B.1 в работе: реализованы `period_coverage_profile`, `document_type_and_account_section_profile`, `counterparty_population_and_roles`, `contract_usage_overview` (unit/build green).
- [x] Targeted live-check Batch-1 next pack (`Q6/Q7/Q28`) выполнен: `strict factual 9/9`.
- [ ] Phase B закрыт.
- [ ] Phase C закрыт.
## 4. Решение на сейчас
1. Начинать можно, но строго по фазам выше.
2. Прямое включение Batch-1 intents в production-path без Phase B/C — запрещено.
3. Точка входа в работу: `Phase C` (full Batch-1 acceptance + global non-regression).

View File

@ -0,0 +1,88 @@
# Step-4 Wave-1 Batch-1 — Phase A/B Backlog V1
Дата: 2026-04-02
Статус: `active`
Scope: `Q1..Q7 + Q28`
## 1. Phase A (Design/Contract) — старт
- [x] Зафиксирован master checker: `step4_wave1_batch1_master_checker_v1.md`
- [x] Выпущен readiness report: `wave1_batch1_readiness_report_2026-04-02.md`
- [x] Зафиксирована domain card: `domain_general_batch1_foundation_card_v1.md`
- [x] Сформирован стартовый acceptance набор: `domain_general_batch1_acceptance_2026-04-02_phaseA.json`
- [x] Финализировано именование Batch-1 intent-ов (freeze):
`period_coverage_profile`, `document_type_and_account_section_profile`, `counterparty_population_and_roles`, `contract_usage_overview`.
- [ ] Добавить negative-кейсы (похожая формулировка -> другой intent/limited)
## 2. Phase B (Runtime Prep) — задачи по коду
### 2.1 Resolver / Types
- [x] `llm_normalizer/backend/src/services/addressIntentResolver.ts`
Добавить intents Batch-1:
`period_coverage_profile`, `document_type_and_account_section_profile`, `counterparty_population_and_roles`, `contract_usage_overview`.
- [x] `llm_normalizer/backend/src/types/addressQuery.ts`
Расширить `AddressIntent`, `AddressResponseType`/debug контракт при необходимости.
- [ ] `llm_normalizer/backend/src/services/address_runtime/decomposeStage.ts`
Добавить follow-up carryover правила для Batch-1 summary intents.
Статус Phase B.1 (факт):
- [x] Добавлен `period_coverage_profile` в `AddressIntent` и resolver-сигналы.
- [x] Добавлен `document_type_and_account_section_profile` в `AddressIntent` и resolver-сигналы.
- [x] Добавлен `counterparty_population_and_roles` в `AddressIntent` и resolver-сигналы.
- [x] Добавлен `contract_usage_overview` в `AddressIntent` и resolver-сигналы.
- [x] Расширен mode classifier для management profile вопросов (`management_profile_signal_detected`).
### 2.2 Recipe / Execution
- [x] `llm_normalizer/backend/src/services/addressRecipeCatalog.ts`
Добавить recipes:
- `address_period_coverage_profile_v1`
- `address_document_type_and_account_section_profile_v1`
- `address_counterparty_population_roles_v1`
- `address_contract_usage_overview_v1`
- [ ] `llm_normalizer/backend/src/services/addressQueryService.ts`
Добавить обработку summary/list composer-путей для новых intents.
- [ ] Зафиксировать operation-vs-document contracts для метрик `Q1..Q5`.
Статус Phase B.1 (факт):
- [x] Добавлен recipe `address_period_coverage_profile_v1` + query template `period_profile`.
- [x] Добавлен recipe `address_document_type_and_account_section_profile_v1` + query template `document_section_profile`.
- [x] Добавлен recipe `address_counterparty_population_roles_v1` + query template `counterparty_roles_profile`.
- [x] Добавлен recipe `address_contract_usage_overview_v1` + query template `contract_usage_profile`.
### 2.3 Compose / Output
- [ ] `llm_normalizer/backend/src/services/address_runtime/composeStage.ts`
Формат rank-list/summary для management intents (top/bottom + labels + metric basis).
- [ ] Добавить единый wording для partial (`limited_reason_category`) в Batch-1.
Статус Phase B.1 (факт):
- [x] Добавлен summary composer для `period_coverage_profile` (coverage range + top year/docs + top month/ops).
- [x] Добавлен summary composer для `document_type_and_account_section_profile` (top doc types + top/low account sections).
- [x] Добавлен summary composer для `counterparty_population_and_roles` (total + role split).
- [x] Добавлен summary composer для `contract_usage_overview` (total vs used + unused + share).
- [x] Прогнаны build + unit:
- `npm.cmd run build`
- `npm.cmd test -- tests/addressQueryRuntimeM23.test.ts` (`132 passed`)
- live targeted pack `Q6/Q7/Q28`: `2026-04-02_Address_Batch1_NextPack_Q6_Q7_Q28` (`strict factual 9/9`)
## 3. Phase C (Gate) — критерии закрытия
- [ ] Domain run-pack по `domain_general_batch1_acceptance_2026-04-02_phaseA.json`:
- `strict_pass(route)=100%`
- `false_factual_rate=0`
- `execution_error_rate=0`
- [ ] Global non-regression:
- `address_slang_stress_full_2026-04-02.json`
- `address_followup_context_chains_2026-04-02.json`
обе метрики не ниже baseline (`102/102`, `25/25`).
- [ ] Обновить docs: `runtime_readiness_matrix_v1.md`, `address_scenario_matrix.md`, `global_execution_checklist_v1.md`.
## 4. Точка старта работ
Следующая практическая задача: перейти к domain gate по full Batch-1 pack
(`domain_general_batch1_acceptance_2026-04-02_phaseA.json`) и закрыть Phase C.

View File

@ -0,0 +1,18 @@
# Wave-1 Batch-1 Readiness Report
- Generated at: `2026-04-02T18:35:01+03:00`
- Decision: **READY_FOR_PHASE_A**
## Checks
- `master_checklist_exists`: **PASS** — X:\1C\NDC_1C\docs\ADDRESS\address_query\global_execution_checklist_v1.md
- `step0_closeout_exists`: **PASS** — X:\1C\NDC_1C\docs\ADDRESS\address_query\step0_closeout_2026-04-02.md
- `step4_plan_exists`: **PASS** — X:\1C\NDC_1C\docs\ADDRESS\address_query\domain_expansion_implementation_plan_v1.md
- `general_domain_analysis_exists`: **PASS** — X:\1C\NDC_1C\docs\ADDRESS\address_query\general_domain_questions_analysis_plan_v1_2026-04-02.md
- `group1_probe_report_exists`: **PASS** — X:\1C\NDC_1C\docs\ADDRESS\address_query\management_route_probe_report_g1_2026-04-02.md
- `complex_status_map_exists`: **PASS** — X:\1C\NDC_1C\docs\ADDRESS\address_query\complex_questions_status_and_reuse_map_2026-04-02.md
- `baseline_stress_102`: **PASS** — strict=102/102, route=102/102
- `baseline_followup_25`: **PASS** — strict=25/25, route=25/25
- `nightly_regression_green`: **PASS** — overall_ok=true, packs=2
## Next Action
- Start/continue Phase A for Batch-1 (domain card + acceptance set + implementation backlog).

View File

@ -0,0 +1,204 @@
[
{
"id": "B1_C001",
"group": "canonical",
"text": "За какие годы в базе есть данные?",
"expected_intent": "period_coverage_profile",
"expected_mode": "address_query"
},
{
"id": "B1_C002",
"group": "canonical",
"text": "Какой год самый активный по количеству документов?",
"expected_intent": "period_coverage_profile",
"expected_mode": "address_query"
},
{
"id": "B1_C003",
"group": "canonical",
"text": "Какой месяц самый активный по количеству операций?",
"expected_intent": "period_coverage_profile",
"expected_mode": "address_query"
},
{
"id": "B1_C004",
"group": "canonical",
"text": "Какие типы документов используются чаще всего в базе?",
"expected_intent": "document_type_and_account_section_profile",
"expected_mode": "address_query"
},
{
"id": "B1_C005",
"group": "canonical",
"text": "Какие разделы учета наиболее заполнены и какие почти не используются?",
"expected_intent": "document_type_and_account_section_profile",
"expected_mode": "address_query"
},
{
"id": "B1_C006",
"group": "canonical",
"text": "Сколько всего уникальных контрагентов в базе?",
"expected_intent": "counterparty_population_and_roles",
"expected_mode": "address_query"
},
{
"id": "B1_C007",
"group": "canonical",
"text": "Сколько у нас заказчиков, поставщиков и смешанных контрагентов?",
"expected_intent": "counterparty_population_and_roles",
"expected_mode": "address_query"
},
{
"id": "B1_C008",
"group": "canonical",
"text": "Сколько всего договоров заведено и сколько из них реально использовались?",
"expected_intent": "contract_usage_overview",
"expected_mode": "address_query"
},
{
"id": "B1_C009",
"group": "canonical",
"text": "Покажи профиль данных по базе: диапазон лет, топ год и топ месяц активности.",
"expected_intent": "period_coverage_profile",
"expected_mode": "address_query"
},
{
"id": "B1_C010",
"group": "canonical",
"text": "Сформируй сводку по типам документов и их доле в общем объеме.",
"expected_intent": "document_type_and_account_section_profile",
"expected_mode": "address_query"
},
{
"id": "B1_C011",
"group": "canonical",
"text": "Сколько контрагентов активны как клиенты и как поставщики?",
"expected_intent": "counterparty_population_and_roles",
"expected_mode": "address_query"
},
{
"id": "B1_C012",
"group": "canonical",
"text": "Дай обзор договорной базы: total договоров и used договоров.",
"expected_intent": "contract_usage_overview",
"expected_mode": "address_query"
},
{
"id": "B1_N001",
"group": "noisy_slang",
"text": "за какие года база ваще живая?",
"expected_intent": "period_coverage_profile",
"expected_mode": "address_query"
},
{
"id": "B1_N002",
"group": "noisy_slang",
"text": "какой год тут самый движовый по докам",
"expected_intent": "period_coverage_profile",
"expected_mode": "address_query"
},
{
"id": "B1_N003",
"group": "noisy_slang",
"text": "какой месяц прям пик по операциям?",
"expected_intent": "period_coverage_profile",
"expected_mode": "address_query"
},
{
"id": "B1_N004",
"group": "noisy_slang",
"text": "каких доков у нас больше всего крутится?",
"expected_intent": "document_type_and_account_section_profile",
"expected_mode": "address_query"
},
{
"id": "B1_N005",
"group": "noisy_slang",
"text": "какие разделы учета жирные, а какие мертвые?",
"expected_intent": "document_type_and_account_section_profile",
"expected_mode": "address_query"
},
{
"id": "B1_N006",
"group": "noisy_slang",
"text": "скок уник контрагентов вообще есть",
"expected_intent": "counterparty_population_and_roles",
"expected_mode": "address_query"
},
{
"id": "B1_N007",
"group": "noisy_slang",
"text": "разбей контров на клиентов/поставщиков/смешанных",
"expected_intent": "counterparty_population_and_roles",
"expected_mode": "address_query"
},
{
"id": "B1_N008",
"group": "noisy_slang",
"text": "договоров сколько всего и сколько реально юзались?",
"expected_intent": "contract_usage_overview",
"expected_mode": "address_query"
},
{
"id": "B1_N009",
"group": "noisy_slang",
"text": "покажи по базе years/top year/top month, только без воды",
"expected_intent": "period_coverage_profile",
"expected_mode": "address_query"
},
{
"id": "B1_N010",
"group": "noisy_slang",
"text": "чо по договорной базе: total vs used",
"expected_intent": "contract_usage_overview",
"expected_mode": "address_query"
},
{
"id": "B1_F001",
"group": "followup_chain",
"session": "b1_chain_period_profile",
"text": "За какие годы в базе есть данные?",
"expected_intent": "period_coverage_profile",
"expected_mode": "address_query"
},
{
"id": "B1_F002",
"group": "followup_chain",
"session": "b1_chain_period_profile",
"text": "а какой год самый активный по документам?",
"expected_intent": "period_coverage_profile",
"expected_mode": "address_query"
},
{
"id": "B1_F003",
"group": "followup_chain",
"session": "b1_chain_period_profile",
"text": "а теперь месяц-пик по операциям",
"expected_intent": "period_coverage_profile",
"expected_mode": "address_query"
},
{
"id": "B1_F004",
"group": "followup_chain",
"session": "b1_chain_population_contracts",
"text": "Сколько всего уникальных контрагентов в базе?",
"expected_intent": "counterparty_population_and_roles",
"expected_mode": "address_query"
},
{
"id": "B1_F005",
"group": "followup_chain",
"session": "b1_chain_population_contracts",
"text": "а теперь разбей их на заказчиков и поставщиков",
"expected_intent": "counterparty_population_and_roles",
"expected_mode": "address_query"
},
{
"id": "B1_F006",
"group": "followup_chain",
"session": "b1_chain_population_contracts",
"text": "и сразу сколько всего договоров и сколько used",
"expected_intent": "contract_usage_overview",
"expected_mode": "address_query"
}
]

View File

@ -0,0 +1,11 @@
[
{"id":"NXP_C006","text":"Сколько всего уникальных контрагентов в базе?","expected_intent":"counterparty_population_and_roles","expected_mode":"address_query"},
{"id":"NXP_C007","text":"Сколько у нас заказчиков, поставщиков и смешанных контрагентов?","expected_intent":"counterparty_population_and_roles","expected_mode":"address_query"},
{"id":"NXP_C008","text":"Сколько всего договоров заведено и сколько из них реально использовались?","expected_intent":"contract_usage_overview","expected_mode":"address_query"},
{"id":"NXP_N006","text":"скок уник контрагентов вообще есть","expected_intent":"counterparty_population_and_roles","expected_mode":"address_query"},
{"id":"NXP_N007","text":"разбей контров на клиентов/поставщиков/смешанных","expected_intent":"counterparty_population_and_roles","expected_mode":"address_query"},
{"id":"NXP_N008","text":"договоров сколько всего и сколько реально юзались?","expected_intent":"contract_usage_overview","expected_mode":"address_query"},
{"id":"NXP_F004","session":"nxp_chain_population_contracts","text":"Сколько всего уникальных контрагентов в базе?","expected_intent":"counterparty_population_and_roles","expected_mode":"address_query"},
{"id":"NXP_F005","session":"nxp_chain_population_contracts","text":"а теперь разбей их на заказчиков и поставщиков","expected_intent":"counterparty_population_and_roles","expected_mode":"address_query"},
{"id":"NXP_F006","session":"nxp_chain_population_contracts","text":"и сразу сколько всего договоров и сколько used","expected_intent":"contract_usage_overview","expected_mode":"address_query"}
]

View File

@ -0,0 +1,52 @@
[
{
"id": "B2_C001",
"group": "canonical",
"text": "Какие заказчики работали с нами в 2020 году?",
"expected_intent": "counterparty_activity_lifecycle",
"expected_mode": "address_query",
"expected_reply_type": "factual"
},
{
"id": "B2_C002",
"group": "canonical",
"text": "Какие заказчики работали с нами за все время?",
"expected_intent": "counterparty_activity_lifecycle",
"expected_mode": "address_query",
"expected_reply_type": "factual"
},
{
"id": "B2_N001",
"group": "noisy_slang",
"text": "какие клиенты у нас были активны в 2020?",
"expected_intent": "counterparty_activity_lifecycle",
"expected_mode": "address_query",
"expected_reply_type": "factual"
},
{
"id": "B2_N002",
"group": "noisy_slang",
"text": "выведи активных клиентов за все время",
"expected_intent": "counterparty_activity_lifecycle",
"expected_mode": "address_query",
"expected_reply_type": "factual"
},
{
"id": "B2_F001",
"group": "followup_chain",
"session": "b2_q8_q9_customer_activity_chain",
"text": "Какие заказчики работали с нами в 2020 году?",
"expected_intent": "counterparty_activity_lifecycle",
"expected_mode": "address_query",
"expected_reply_type": "factual"
},
{
"id": "B2_F002",
"group": "followup_chain",
"session": "b2_q8_q9_customer_activity_chain",
"text": "а за все время?",
"expected_intent": "counterparty_activity_lifecycle",
"expected_mode": "address_query",
"expected_reply_type": "factual"
}
]

View File

@ -0,0 +1,20 @@
[
{
"id": "Q_CONTRACTS_ZHUKOVKA",
"text": "покажи договора все по жуковке 51",
"expected_intent": "list_contracts_by_counterparty",
"expected_mode": "address_query"
},
{
"id": "Q_DOCS_ZHUKOVKA",
"text": "покажи документы все по жуковке 51",
"expected_intent": "list_documents_by_counterparty",
"expected_mode": "address_query"
},
{
"id": "Q_CONTRACTS_SVK",
"text": "покажи договора по свк",
"expected_intent": "list_contracts_by_counterparty",
"expected_mode": "address_query"
}
]

View File

@ -0,0 +1,4 @@
[
{"id":"Q_Z1","text":"покажи договора все по жуковка 51","expected_mode":"address_query"},
{"id":"Q_Z2","text":"покажи договора все по жуковка","expected_mode":"address_query"}
]

View File

@ -0,0 +1,4 @@
[
{ "id": "P001", "text": "скок клиентов" },
{ "id": "P002", "text": "кто у нас заказчики вообще" }
]

View File

@ -0,0 +1,4 @@
[
{ "id": "G001", "text": "привет как дела" },
{ "id": "G002", "text": "выведи список заказчиков за все время" }
]

View File

@ -0,0 +1,7 @@
[
{"id":"Q1","text":"За какие годы в базе есть данные?","expected_intent":"period_coverage_profile","expected_mode":"address_query"},
{"id":"Q2","text":"Какой год самый активный по количеству документов?","expected_intent":"period_coverage_profile","expected_mode":"address_query"},
{"id":"Q3","text":"Какой месяц самый активный по количеству операций?","expected_intent":"period_coverage_profile","expected_mode":"address_query"},
{"id":"Q4","text":"Какие типы документов используются чаще всего в базе?","expected_intent":"document_type_and_account_section_profile","expected_mode":"address_query"},
{"id":"Q5","text":"Какие разделы учета наиболее заполнены и какие почти не используются?","expected_intent":"document_type_and_account_section_profile","expected_mode":"address_query"}
]

View File

@ -0,0 +1,6 @@
[
{ "id": "L001", "text": "выведи список заказчиков за все время" },
{ "id": "L002", "text": "покажи список заказчиков за 20год" },
{ "id": "L003", "text": "zakazchiki za 20 god spisok" },
{ "id": "L004", "text": "кто у нас заказчики вообще" }
]

View File

@ -0,0 +1,10 @@
[
{
"id": "R001",
"text": "выведи список заказчиков за все время"
},
{
"id": "R002",
"text": "покажи список заказчиков за 20год"
}
]

View File

@ -0,0 +1,6 @@
[
{"id":"R001","text":"Какой год самый пассивный по количеству документов?"},
{"id":"R002","text":"Какой месяц самый пассивный по количеству операций?"},
{"id":"R003","text":"Какие типы документов используются реже всего в базе?"},
{"id":"R004","text":"Какие разделы учета наименее заполнены?"}
]

View File

@ -0,0 +1,25 @@
[
{
"id": "Q001",
"text": "скок поставщиков в базе",
"expected_intent": "counterparty_population_and_roles",
"expected_mode": "address_query",
"expected_reply_type": "factual",
"session": "supplier_client_followup_2026-04-02"
},
{
"id": "Q002",
"text": "скок клиентов",
"expected_intent": "counterparty_population_and_roles",
"expected_mode": "address_query",
"expected_reply_type": "factual",
"session": "supplier_client_followup_2026-04-02"
},
{
"id": "Q003",
"text": "скок клиентов в базе",
"expected_intent": "counterparty_population_and_roles",
"expected_mode": "address_query",
"expected_reply_type": "factual"
}
]

View File

@ -0,0 +1,33 @@
[
{
"id": "Q001",
"text": "скока всего контрагентов в базе",
"expected_intent": "counterparty_population_and_roles",
"expected_mode": "address_query",
"expected_reply_type": "factual",
"session": "supplier_count_targeted_2026-04-02"
},
{
"id": "Q002",
"text": "скока поставщиков",
"expected_intent": "counterparty_population_and_roles",
"expected_mode": "address_query",
"expected_reply_type": "factual",
"session": "supplier_count_targeted_2026-04-02"
},
{
"id": "Q003",
"text": "скока поставщиков в базе",
"expected_intent": "counterparty_population_and_roles",
"expected_mode": "address_query",
"expected_reply_type": "factual",
"session": "supplier_count_targeted_2026-04-02"
},
{
"id": "Q004",
"text": "скока заказчиков в базе",
"expected_intent": "counterparty_population_and_roles",
"expected_mode": "address_query",
"expected_reply_type": "factual"
}
]

View File

@ -0,0 +1,29 @@
[
{
"id": "Q_DOCS_ZH_2020",
"text": "покажи доки по жуковке за 20 год",
"expected_mode": "address_query"
},
{
"id": "Q_CUST_2020",
"text": "покажи заказчиков за 20 год",
"expected_mode": "address_query",
"session": "cust_followup_2020_2021"
},
{
"id": "Q_CUST_2021_FOLLOWUP",
"text": "теперь за 21",
"expected_mode": "address_query",
"session": "cust_followup_2020_2021"
},
{
"id": "Q_DOCS_ZH_ALL",
"text": "покажи доки по жуковке за все время",
"expected_mode": "address_query"
},
{
"id": "Q_DOCS_ZH51_ALL",
"text": "покажи доки по жуковке 51 за все время",
"expected_mode": "address_query"
}
]

View File

@ -0,0 +1,28 @@
# 2026-04-02_Address_Batch1_NextPack_Q6_Q7_Q28
Generated at: 2026-04-02T21:06:15
Questions file: X:\1C\NDC_1C\docs\ADDRESS\question_sets\temp_batch1_next_pack_q6_q7_q28_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: factual
## Totals
- questions_total: 9
- ok_200_count: 9
- semantic_pass_count: 9
- semantic_pass_rate: 1.0
- route_pass_count: 9
- route_pass_rate: 1.0
- strict_pass_count: 9
- strict_pass_rate: 1.0
- factual_count: 9
- partial_coverage_count: 0
- clarification_required_count: 0
- http_error_count: 0
- llm_decomposition_applied_count: 4
- avg_elapsed_ms: 5195.3
## Files
- run_summary.json
- full_live_results.json
- failures_only.json

View File

@ -0,0 +1,13 @@
# Response Audit: 2026-04-02_Address_Batch1_NextPack_Q6_Q7_Q28
| id | strict | route_health | reply_type | intent | limited_reason | question | assistant_first_line |
|---|---|---|---|---|---|---|---|
| NXP_C006 | True | ok_or_factual | factual | counterparty_population_and_roles | None | Сколько всего уникальных контрагентов в базе? | Профиль контрагентов собран (catalog + bank-doc activity aggregate). |
| NXP_C007 | True | ok_or_factual | factual | counterparty_population_and_roles | None | Сколько у нас заказчиков, поставщиков и смешанных контрагентов? | Профиль контрагентов собран (catalog + bank-doc activity aggregate). |
| NXP_C008 | True | ok_or_factual | factual | contract_usage_overview | None | Сколько всего договоров заведено и сколько из них реально использовались? | Профиль договорной базы собран (catalog + usage aggregate). |
| NXP_N006 | True | ok_or_factual | factual | counterparty_population_and_roles | None | скок уник контрагентов вообще есть | Профиль контрагентов собран (catalog + bank-doc activity aggregate). |
| NXP_N007 | True | ok_or_factual | factual | counterparty_population_and_roles | None | разбей контров на клиентов/поставщиков/смешанных | Профиль контрагентов собран (catalog + bank-doc activity aggregate). |
| NXP_N008 | True | ok_or_factual | factual | contract_usage_overview | None | договоров сколько всего и сколько реально юзались? | Профиль договорной базы собран (catalog + usage aggregate). |
| NXP_F004 | True | ok_or_factual | factual | counterparty_population_and_roles | None | Сколько всего уникальных контрагентов в базе? | Профиль контрагентов собран (catalog + bank-doc activity aggregate). |
| NXP_F005 | True | ok_or_factual | factual | counterparty_population_and_roles | None | а теперь разбей их на заказчиков и поставщиков | Профиль контрагентов собран (catalog + bank-doc activity aggregate). |
| NXP_F006 | True | ok_or_factual | factual | contract_usage_overview | None | и сразу сколько всего договоров и сколько used | Профиль договорной базы собран (catalog + usage aggregate). |

View File

@ -0,0 +1,45 @@
{
"run_id": "2026-04-02_Address_Batch1_NextPack_Q6_Q7_Q28",
"generated_at": "2026-04-02T21:06:15",
"source_questions_file": "X:\\1C\\NDC_1C\\docs\\ADDRESS\\question_sets\\temp_batch1_next_pack_q6_q7_q28_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": "factual",
"totals": {
"questions_total": 9,
"ok_200_count": 9,
"semantic_pass_count": 9,
"semantic_pass_rate": 1.0,
"route_pass_count": 9,
"route_pass_rate": 1.0,
"strict_pass_count": 9,
"strict_pass_rate": 1.0,
"factual_count": 9,
"partial_coverage_count": 0,
"clarification_required_count": 0,
"http_error_count": 0,
"llm_decomposition_applied_count": 4,
"avg_elapsed_ms": 5195.3
},
"distributions": {
"reply_type": {
"factual": 9
},
"actual_intent": {
"counterparty_population_and_roles": 6,
"contract_usage_overview": 3
},
"actual_mode": {
"address_query": 9
},
"mcp_call_status": {
"matched_non_empty": 9
},
"limited_reason_category": {},
"route_health": {
"ok_or_factual": 9
}
}
}

View File

@ -0,0 +1,28 @@
# 2026-04-02_Address_Batch2_Q8_Q9_Targeted
Generated at: 2026-04-02T21:37:06
Questions file: X:\1C\NDC_1C\docs\ADDRESS\question_sets\temp_batch2_q8_q9_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: factual
## Totals
- questions_total: 6
- ok_200_count: 6
- semantic_pass_count: 6
- semantic_pass_rate: 1.0
- route_pass_count: 6
- route_pass_rate: 1.0
- strict_pass_count: 6
- strict_pass_rate: 1.0
- factual_count: 6
- partial_coverage_count: 0
- clarification_required_count: 0
- http_error_count: 0
- llm_decomposition_applied_count: 0
- avg_elapsed_ms: 914.3
## 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,10 @@
# Response Audit: 2026-04-02_Address_Batch2_Q8_Q9_Targeted
| id | strict | route_health | reply_type | intent | limited_reason | question | assistant_first_line |
|---|---|---|---|---|---|---|---|
| B2_C001 | True | ok_or_factual | factual | counterparty_activity_lifecycle | None | Какие заказчики работали с нами в 2020 году? | Собран профиль активности заказчиков (bank-doc activity aggregate). |
| B2_C002 | True | ok_or_factual | factual | counterparty_activity_lifecycle | None | Какие заказчики работали с нами за все время? | Собран профиль активности заказчиков (bank-doc activity aggregate). |
| B2_N001 | True | ok_or_factual | factual | counterparty_activity_lifecycle | None | какие клиенты у нас были активны в 2020? | Собран профиль активности заказчиков (bank-doc activity aggregate). |
| B2_N002 | True | ok_or_factual | factual | counterparty_activity_lifecycle | None | выведи активных клиентов за все время | Собран профиль активности заказчиков (bank-doc activity aggregate). |
| B2_F001 | True | ok_or_factual | factual | counterparty_activity_lifecycle | None | Какие заказчики работали с нами в 2020 году? | Собран профиль активности заказчиков (bank-doc activity aggregate). |
| B2_F002 | True | ok_or_factual | factual | counterparty_activity_lifecycle | None | а за все время? | Собран профиль активности заказчиков (bank-doc activity aggregate). |

View File

@ -0,0 +1,44 @@
{
"run_id": "2026-04-02_Address_Batch2_Q8_Q9_Targeted",
"generated_at": "2026-04-02T21:37:06",
"source_questions_file": "X:\\1C\\NDC_1C\\docs\\ADDRESS\\question_sets\\temp_batch2_q8_q9_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": "factual",
"totals": {
"questions_total": 6,
"ok_200_count": 6,
"semantic_pass_count": 6,
"semantic_pass_rate": 1.0,
"route_pass_count": 6,
"route_pass_rate": 1.0,
"strict_pass_count": 6,
"strict_pass_rate": 1.0,
"factual_count": 6,
"partial_coverage_count": 0,
"clarification_required_count": 0,
"http_error_count": 0,
"llm_decomposition_applied_count": 0,
"avg_elapsed_ms": 914.3
},
"distributions": {
"reply_type": {
"factual": 6
},
"actual_intent": {
"counterparty_activity_lifecycle": 6
},
"actual_mode": {
"address_query": 6
},
"mcp_call_status": {
"matched_non_empty": 6
},
"limited_reason_category": {},
"route_health": {
"ok_or_factual": 6
}
}
}

View File

@ -0,0 +1,28 @@
# 2026-04-02_Address_CustomerRole_Probe
Generated at: 2026-04-02T21:57:59
Questions file: X:\1C\NDC_1C\docs\ADDRESS\question_sets\temp_customer_role_probe_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: factual
## Totals
- questions_total: 2
- ok_200_count: 2
- semantic_pass_count: 2
- semantic_pass_rate: 1.0
- route_pass_count: 1
- route_pass_rate: 0.5
- strict_pass_count: 1
- strict_pass_rate: 0.5
- factual_count: 1
- partial_coverage_count: 1
- clarification_required_count: 0
- http_error_count: 0
- llm_decomposition_applied_count: 1
- avg_elapsed_ms: 5432.5
## Files
- run_summary.json
- full_live_results.json
- failures_only.json

View File

@ -0,0 +1,141 @@
[
{
"index": 2,
"id": "P002",
"question": "кто у нас заказчики вообще",
"session": null,
"session_id": "asst-2026-04-02_Address_CustomerRole_Probe-p002",
"status_code": 200,
"ok": true,
"elapsed_ms": 4503,
"reply_type": "partial_coverage",
"trace_id": "address-_VaGpRcHM0",
"assistant_reply": "Этот запрос не подходит под address_query V1.\nПричина: intent пока не поддержан в address V1.\nЧто нужно уточнить: переформулируйте вопрос как адресный lookup по счету/контрагенту/договору.",
"assistant_reply_first_line": "Этот запрос не подходит под address_query V1.",
"expected_intent": null,
"actual_intent": "unknown",
"intent_match": true,
"expected_mode": "address_query",
"actual_mode": "address_query",
"mode_match": true,
"expected_reply_type": null,
"reply_match": true,
"semantic_pass": true,
"route_pass": false,
"route_health": "blocked_unsupported",
"strict_policy": "factual",
"strict_pass": false,
"selected_recipe": null,
"missing_required_filters": [],
"match_failure_stage": "none",
"match_failure_reason": null,
"rows_fetched": 0,
"rows_matched": 0,
"mcp_call_status": "skipped",
"limited_reason_category": "unsupported",
"llm_decomposition_applied": false,
"llm_decomposition_reason": "normalized_fragment_same",
"fallback_rule_hit": null,
"debug_payload": {
"trace_id": "address-_VaGpRcHM0",
"prompt_version": "address_query_runtime_v1",
"schema_version": "address_query_runtime_v1",
"fallback_type": "partial",
"route_summary": null,
"fragments": [],
"requirements_extracted": [],
"coverage_report": {
"requirements_total": 0,
"requirements_covered": 0,
"requirements_uncovered": [],
"requirements_partially_covered": [],
"clarification_needed_for": [],
"out_of_scope_requirements": []
},
"routes": [],
"retrieval_status": [],
"retrieval_results": [],
"answer_grounding_check": {
"status": "partial",
"route_subject_match": true,
"missing_requirements": [],
"reasons": [
"address_action_detected",
"address_entity_detected",
"shape_not_detected",
"intent_not_supported_in_v1"
],
"why_included_summary": [],
"selection_reason_summary": []
},
"dropped_intent_segments": [],
"detected_mode": "address_query",
"detected_mode_confidence": "high",
"query_shape": "UNKNOWN",
"query_shape_confidence": "low",
"detected_intent": "unknown",
"detected_intent_confidence": "low",
"extracted_filters": {
"sort": "period_desc",
"limit": 20
},
"missing_required_filters": [],
"selected_recipe": null,
"mcp_call_status_legacy": "skipped",
"account_scope_mode": "strict",
"account_scope_fallback_applied": false,
"anchor_type": "unknown",
"anchor_value_raw": null,
"anchor_value_resolved": null,
"resolver_confidence": "low",
"ambiguity_count": 0,
"match_failure_stage": "none",
"match_failure_reason": null,
"mcp_call_status": "skipped",
"rows_fetched": 0,
"raw_rows_received": 0,
"rows_after_account_scope": 0,
"rows_after_recipe_filter": 0,
"rows_materialized": 0,
"rows_matched": 0,
"raw_row_keys_sample": [],
"materialization_drop_reason": "none",
"account_token_raw": null,
"account_token_normalized": null,
"account_scope_fields_checked": [
"account_dt",
"account_kt",
"registrator",
"analytics"
],
"account_scope_match_strategy": "account_code_regex_plus_alias_map_v1",
"account_scope_drop_reason": "not_applicable",
"runtime_readiness": "DEEP_ONLY",
"limited_reason_category": "unsupported",
"response_type": "LIMITED_WITH_REASON",
"execution_lane": "address_query",
"llm_decomposition_applied": false,
"llm_decomposition_attempted": true,
"llm_provider_used": "local",
"llm_decomposition_trace_id": "wDo3K7gI394XmR",
"llm_decomposition_effective_message": "кто у нас заказчики вообще",
"llm_decomposition_reason": "normalized_fragment_same",
"llm_canonical_candidate_detected": true,
"fallback_rule_hit": null,
"sanitized_user_message": "кто у нас заказчики вообще",
"tool_gate_decision": "run_address_lane",
"tool_gate_reason": "address_mode_classifier_detected",
"answer_structure_v11": null,
"investigation_state_snapshot": null,
"normalized": null,
"normalizer_output": {
"trace_id": "wDo3K7gI394XmR",
"prompt_version": "normalizer_v2_0_2",
"applied": false,
"effective_message": "кто у нас заказчики вообще"
}
},
"error_code": null,
"error_message": null
}
]

View File

@ -0,0 +1,343 @@
{
"run_id": "2026-04-02_Address_CustomerRole_Probe",
"generated_at": "2026-04-02T21:57:59",
"summary": {
"run_id": "2026-04-02_Address_CustomerRole_Probe",
"generated_at": "2026-04-02T21:57:59",
"source_questions_file": "X:\\1C\\NDC_1C\\docs\\ADDRESS\\question_sets\\temp_customer_role_probe_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": "factual",
"totals": {
"questions_total": 2,
"ok_200_count": 2,
"semantic_pass_count": 2,
"semantic_pass_rate": 1.0,
"route_pass_count": 1,
"route_pass_rate": 0.5,
"strict_pass_count": 1,
"strict_pass_rate": 0.5,
"factual_count": 1,
"partial_coverage_count": 1,
"clarification_required_count": 0,
"http_error_count": 0,
"llm_decomposition_applied_count": 1,
"avg_elapsed_ms": 5432.5
},
"distributions": {
"reply_type": {
"factual": 1,
"partial_coverage": 1
},
"actual_intent": {
"counterparty_population_and_roles": 1,
"unknown": 1
},
"actual_mode": {
"address_query": 2
},
"mcp_call_status": {
"matched_non_empty": 1,
"skipped": 1
},
"limited_reason_category": {
"unsupported": 1
},
"route_health": {
"ok_or_factual": 1,
"blocked_unsupported": 1
}
}
},
"rows": [
{
"index": 1,
"id": "P001",
"question": "скок клиентов",
"session": null,
"session_id": "asst-2026-04-02_Address_CustomerRole_Probe-p001",
"status_code": 200,
"ok": true,
"elapsed_ms": 6362,
"reply_type": "factual",
"trace_id": "address-BlXqmGgtXZ",
"assistant_reply": "Профиль контрагентов собран (catalog + bank-doc activity aggregate).\nСтрок агрегата: 5.\nВсего уникальных контрагентов в базе: 139.",
"assistant_reply_first_line": "Профиль контрагентов собран (catalog + bank-doc activity aggregate).",
"expected_intent": null,
"actual_intent": "counterparty_population_and_roles",
"intent_match": true,
"expected_mode": "address_query",
"actual_mode": "address_query",
"mode_match": true,
"expected_reply_type": null,
"reply_match": true,
"semantic_pass": true,
"route_pass": true,
"route_health": "ok_or_factual",
"strict_policy": "factual",
"strict_pass": true,
"selected_recipe": "address_counterparty_population_roles_v1",
"missing_required_filters": [],
"match_failure_stage": "none",
"match_failure_reason": null,
"rows_fetched": 5,
"rows_matched": 5,
"mcp_call_status": "matched_non_empty",
"limited_reason_category": null,
"llm_decomposition_applied": true,
"llm_decomposition_reason": "normalized_fragment_applied",
"fallback_rule_hit": null,
"debug_payload": {
"trace_id": "address-BlXqmGgtXZ",
"prompt_version": "address_query_runtime_v1",
"schema_version": "address_query_runtime_v1",
"fallback_type": "none",
"route_summary": null,
"fragments": [],
"requirements_extracted": [],
"coverage_report": {
"requirements_total": 0,
"requirements_covered": 0,
"requirements_uncovered": [],
"requirements_partially_covered": [],
"clarification_needed_for": [],
"out_of_scope_requirements": []
},
"routes": [],
"retrieval_status": [],
"retrieval_results": [],
"answer_grounding_check": {
"status": "grounded",
"route_subject_match": true,
"missing_requirements": [],
"reasons": [
"address_action_detected",
"address_entity_detected",
"object_signal_detected",
"counterparty_population_and_roles_signal_detected"
],
"why_included_summary": [],
"selection_reason_summary": []
},
"dropped_intent_segments": [],
"detected_mode": "address_query",
"detected_mode_confidence": "high",
"query_shape": "OBJECT_LOOKUP",
"query_shape_confidence": "medium",
"detected_intent": "counterparty_population_and_roles",
"detected_intent_confidence": "high",
"extracted_filters": {
"sort": "period_desc",
"period_to": "2026-04-02"
},
"missing_required_filters": [],
"selected_recipe": "address_counterparty_population_roles_v1",
"mcp_call_status_legacy": "matched_non_empty",
"account_scope_mode": "preferred",
"account_scope_fallback_applied": false,
"anchor_type": "unknown",
"anchor_value_raw": null,
"anchor_value_resolved": null,
"resolver_confidence": "low",
"ambiguity_count": 0,
"match_failure_stage": "none",
"match_failure_reason": null,
"mcp_call_status": "matched_non_empty",
"rows_fetched": 5,
"raw_rows_received": 5,
"rows_after_account_scope": 5,
"rows_after_recipe_filter": 5,
"rows_materialized": 5,
"rows_matched": 5,
"raw_row_keys_sample": [
"Период",
"Регистратор",
"СчетДт",
"СчетКт",
"Сумма",
"Period",
"Registrator",
"Amount"
],
"materialization_drop_reason": "none",
"account_token_raw": null,
"account_token_normalized": null,
"account_scope_fields_checked": [
"account_dt",
"account_kt",
"registrator",
"analytics"
],
"account_scope_match_strategy": "account_code_regex_plus_alias_map_v1",
"account_scope_drop_reason": "not_applicable",
"runtime_readiness": "LIVE_QUERYABLE_WITH_LIMITS",
"limited_reason_category": null,
"response_type": "FACTUAL_SUMMARY",
"execution_lane": "address_query",
"llm_decomposition_applied": true,
"llm_decomposition_attempted": true,
"llm_provider_used": "local",
"llm_decomposition_trace_id": "kR-YwJ1dNUHCTn",
"llm_decomposition_effective_message": "сколько контрагентов?",
"llm_decomposition_reason": "normalized_fragment_applied",
"llm_canonical_candidate_detected": true,
"fallback_rule_hit": null,
"sanitized_user_message": "скок клиентов",
"tool_gate_decision": "run_address_lane",
"tool_gate_reason": "address_mode_classifier_detected",
"answer_structure_v11": null,
"investigation_state_snapshot": null,
"normalized": null,
"normalizer_output": {
"trace_id": "kR-YwJ1dNUHCTn",
"prompt_version": "normalizer_v2_0_2",
"applied": true,
"effective_message": "сколько контрагентов?"
}
},
"error_code": null,
"error_message": null
},
{
"index": 2,
"id": "P002",
"question": "кто у нас заказчики вообще",
"session": null,
"session_id": "asst-2026-04-02_Address_CustomerRole_Probe-p002",
"status_code": 200,
"ok": true,
"elapsed_ms": 4503,
"reply_type": "partial_coverage",
"trace_id": "address-_VaGpRcHM0",
"assistant_reply": "Этот запрос не подходит под address_query V1.\nПричина: intent пока не поддержан в address V1.\nЧто нужно уточнить: переформулируйте вопрос как адресный lookup по счету/контрагенту/договору.",
"assistant_reply_first_line": "Этот запрос не подходит под address_query V1.",
"expected_intent": null,
"actual_intent": "unknown",
"intent_match": true,
"expected_mode": "address_query",
"actual_mode": "address_query",
"mode_match": true,
"expected_reply_type": null,
"reply_match": true,
"semantic_pass": true,
"route_pass": false,
"route_health": "blocked_unsupported",
"strict_policy": "factual",
"strict_pass": false,
"selected_recipe": null,
"missing_required_filters": [],
"match_failure_stage": "none",
"match_failure_reason": null,
"rows_fetched": 0,
"rows_matched": 0,
"mcp_call_status": "skipped",
"limited_reason_category": "unsupported",
"llm_decomposition_applied": false,
"llm_decomposition_reason": "normalized_fragment_same",
"fallback_rule_hit": null,
"debug_payload": {
"trace_id": "address-_VaGpRcHM0",
"prompt_version": "address_query_runtime_v1",
"schema_version": "address_query_runtime_v1",
"fallback_type": "partial",
"route_summary": null,
"fragments": [],
"requirements_extracted": [],
"coverage_report": {
"requirements_total": 0,
"requirements_covered": 0,
"requirements_uncovered": [],
"requirements_partially_covered": [],
"clarification_needed_for": [],
"out_of_scope_requirements": []
},
"routes": [],
"retrieval_status": [],
"retrieval_results": [],
"answer_grounding_check": {
"status": "partial",
"route_subject_match": true,
"missing_requirements": [],
"reasons": [
"address_action_detected",
"address_entity_detected",
"shape_not_detected",
"intent_not_supported_in_v1"
],
"why_included_summary": [],
"selection_reason_summary": []
},
"dropped_intent_segments": [],
"detected_mode": "address_query",
"detected_mode_confidence": "high",
"query_shape": "UNKNOWN",
"query_shape_confidence": "low",
"detected_intent": "unknown",
"detected_intent_confidence": "low",
"extracted_filters": {
"sort": "period_desc",
"limit": 20
},
"missing_required_filters": [],
"selected_recipe": null,
"mcp_call_status_legacy": "skipped",
"account_scope_mode": "strict",
"account_scope_fallback_applied": false,
"anchor_type": "unknown",
"anchor_value_raw": null,
"anchor_value_resolved": null,
"resolver_confidence": "low",
"ambiguity_count": 0,
"match_failure_stage": "none",
"match_failure_reason": null,
"mcp_call_status": "skipped",
"rows_fetched": 0,
"raw_rows_received": 0,
"rows_after_account_scope": 0,
"rows_after_recipe_filter": 0,
"rows_materialized": 0,
"rows_matched": 0,
"raw_row_keys_sample": [],
"materialization_drop_reason": "none",
"account_token_raw": null,
"account_token_normalized": null,
"account_scope_fields_checked": [
"account_dt",
"account_kt",
"registrator",
"analytics"
],
"account_scope_match_strategy": "account_code_regex_plus_alias_map_v1",
"account_scope_drop_reason": "not_applicable",
"runtime_readiness": "DEEP_ONLY",
"limited_reason_category": "unsupported",
"response_type": "LIMITED_WITH_REASON",
"execution_lane": "address_query",
"llm_decomposition_applied": false,
"llm_decomposition_attempted": true,
"llm_provider_used": "local",
"llm_decomposition_trace_id": "wDo3K7gI394XmR",
"llm_decomposition_effective_message": "кто у нас заказчики вообще",
"llm_decomposition_reason": "normalized_fragment_same",
"llm_canonical_candidate_detected": true,
"fallback_rule_hit": null,
"sanitized_user_message": "кто у нас заказчики вообще",
"tool_gate_decision": "run_address_lane",
"tool_gate_reason": "address_mode_classifier_detected",
"answer_structure_v11": null,
"investigation_state_snapshot": null,
"normalized": null,
"normalizer_output": {
"trace_id": "wDo3K7gI394XmR",
"prompt_version": "normalizer_v2_0_2",
"applied": false,
"effective_message": "кто у нас заказчики вообще"
}
},
"error_code": null,
"error_message": null
}
]
}

View File

@ -0,0 +1,6 @@
# Response Audit: 2026-04-02_Address_CustomerRole_Probe
| id | strict | route_health | reply_type | intent | limited_reason | question | assistant_first_line |
|---|---|---|---|---|---|---|---|
| P001 | True | ok_or_factual | factual | counterparty_population_and_roles | None | скок клиентов | Профиль контрагентов собран (catalog + bank-doc activity aggregate). |
| P002 | False | blocked_unsupported | partial_coverage | unknown | unsupported | кто у нас заказчики вообще | Этот запрос не подходит под address_query V1. |

View File

@ -0,0 +1,50 @@
{
"run_id": "2026-04-02_Address_CustomerRole_Probe",
"generated_at": "2026-04-02T21:57:59",
"source_questions_file": "X:\\1C\\NDC_1C\\docs\\ADDRESS\\question_sets\\temp_customer_role_probe_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": "factual",
"totals": {
"questions_total": 2,
"ok_200_count": 2,
"semantic_pass_count": 2,
"semantic_pass_rate": 1.0,
"route_pass_count": 1,
"route_pass_rate": 0.5,
"strict_pass_count": 1,
"strict_pass_rate": 0.5,
"factual_count": 1,
"partial_coverage_count": 1,
"clarification_required_count": 0,
"http_error_count": 0,
"llm_decomposition_applied_count": 1,
"avg_elapsed_ms": 5432.5
},
"distributions": {
"reply_type": {
"factual": 1,
"partial_coverage": 1
},
"actual_intent": {
"counterparty_population_and_roles": 1,
"unknown": 1
},
"actual_mode": {
"address_query": 2
},
"mcp_call_status": {
"matched_non_empty": 1,
"skipped": 1
},
"limited_reason_category": {
"unsupported": 1
},
"route_health": {
"ok_or_factual": 1,
"blocked_unsupported": 1
}
}
}

View File

@ -0,0 +1,28 @@
# 2026-04-02_Address_CustomerRole_Probe_AfterRosterFix
Generated at: 2026-04-02T22:00:04
Questions file: X:\1C\NDC_1C\docs\ADDRESS\question_sets\temp_customer_role_probe_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: factual
## Totals
- questions_total: 2
- ok_200_count: 2
- semantic_pass_count: 2
- semantic_pass_rate: 1.0
- route_pass_count: 2
- route_pass_rate: 1.0
- strict_pass_count: 2
- strict_pass_rate: 1.0
- factual_count: 2
- partial_coverage_count: 0
- clarification_required_count: 0
- http_error_count: 0
- llm_decomposition_applied_count: 1
- avg_elapsed_ms: 5649
## 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,6 @@
# Response Audit: 2026-04-02_Address_CustomerRole_Probe_AfterRosterFix
| id | strict | route_health | reply_type | intent | limited_reason | question | assistant_first_line |
|---|---|---|---|---|---|---|---|
| P001 | True | ok_or_factual | factual | counterparty_population_and_roles | None | скок клиентов | Профиль контрагентов собран (catalog + bank-doc activity aggregate). |
| P002 | True | ok_or_factual | factual | counterparty_activity_lifecycle | None | кто у нас заказчики вообще | Собран профиль активности заказчиков (bank-doc activity aggregate). |

View File

@ -0,0 +1,45 @@
{
"run_id": "2026-04-02_Address_CustomerRole_Probe_AfterRosterFix",
"generated_at": "2026-04-02T22:00:04",
"source_questions_file": "X:\\1C\\NDC_1C\\docs\\ADDRESS\\question_sets\\temp_customer_role_probe_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": "factual",
"totals": {
"questions_total": 2,
"ok_200_count": 2,
"semantic_pass_count": 2,
"semantic_pass_rate": 1.0,
"route_pass_count": 2,
"route_pass_rate": 1.0,
"strict_pass_count": 2,
"strict_pass_rate": 1.0,
"factual_count": 2,
"partial_coverage_count": 0,
"clarification_required_count": 0,
"http_error_count": 0,
"llm_decomposition_applied_count": 1,
"avg_elapsed_ms": 5649
},
"distributions": {
"reply_type": {
"factual": 2
},
"actual_intent": {
"counterparty_population_and_roles": 1,
"counterparty_activity_lifecycle": 1
},
"actual_mode": {
"address_query": 2
},
"mcp_call_status": {
"matched_non_empty": 2
},
"limited_reason_category": {},
"route_health": {
"ok_or_factual": 2
}
}
}

View File

@ -0,0 +1,33 @@
# 2026-04-02_Address_GateBlock_Probe_WithMetrics
Generated at: 2026-04-02T22:11:14
Questions file: X:\1C\NDC_1C\docs\ADDRESS\question_sets\temp_gate_block_probe_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: semantic
## Totals
- questions_total: 2
- ok_200_count: 2
- semantic_pass_count: 1
- semantic_pass_rate: 0.5
- route_pass_count: 1
- route_pass_rate: 0.5
- strict_pass_count: 1
- strict_pass_rate: 0.5
- factual_count: 1
- partial_coverage_count: 0
- clarification_required_count: 1
- http_error_count: 0
- llm_decomposition_attempted_count: 1
- llm_decomposition_applied_count: 0
- llm_fallback_count: 0
- llm_fallback_rate: 0.0
- tool_gate_blocked_count: 0
- tool_gate_blocked_rate: 0.0
- avg_elapsed_ms: 8938
## Files
- run_summary.json
- full_live_results.json
- failures_only.json

View File

@ -0,0 +1,395 @@
[
{
"index": 1,
"id": "G001",
"question": "привет как дела",
"session": null,
"session_id": "asst-2026-04-02_Address_GateBlock_Probe_WithMetrics-g001",
"status_code": 200,
"ok": true,
"elapsed_ms": 12732,
"reply_type": "clarification_required",
"trace_id": "y_xkHosQzDZRaL",
"assistant_reply": "Коротко: Наиболее вероятный механизм проблемы подтвержден частично и требует первичной проверки. Что сломано:\n- Есть признаки проблемы, но без уточнений по периоду и объекту вывод ненадежен. Почему это похоже на проблему:\n- Сигнал проблемы есть, но механизм подтвержден не полностью. На чем это основано:\n- Опора частичная: часть требований покрыта не полностью.\n- Отдельно не подтверждено или покрыто частично: R1. Что проверить первым:\n- Уточните период проверки, чтобы подтвердить проблему без лишнего шума.\n- Проверьте связку документов и проводок по проблемному участку в указанном периоде.\n- Уточните период проверки (например, июль 2020). Ограничения:\n- Ни одно требование не получило подтвержденного покрытия.\n- Нет explainable-сигналов why_included в результатах выборки.\n- required anchors claim-bound grounding.\n- evidence.\n- Targeted evidence acquisition claim target path.",
"assistant_reply_first_line": "Коротко: Наиболее вероятный механизм проблемы подтвержден частично и требует первичной проверки. Что сломано:",
"expected_intent": null,
"actual_intent": null,
"intent_match": true,
"expected_mode": "address_query",
"actual_mode": null,
"mode_match": false,
"expected_reply_type": null,
"reply_match": true,
"semantic_pass": false,
"route_pass": false,
"route_health": "blocked_clarification",
"strict_policy": "semantic",
"strict_pass": false,
"selected_recipe": null,
"missing_required_filters": null,
"match_failure_stage": null,
"match_failure_reason": null,
"rows_fetched": null,
"rows_matched": null,
"mcp_call_status": null,
"limited_reason_category": null,
"llm_decomposition_attempted": null,
"llm_decomposition_applied": null,
"llm_decomposition_reason": null,
"llm_canonical_candidate_detected": null,
"fallback_rule_hit": null,
"tool_gate_decision": null,
"tool_gate_reason": null,
"predecompose_contract_intent": null,
"predecompose_contract_aggregation_profile": null,
"predecompose_contract_period_scope": null,
"debug_payload": {
"trace_id": "y_xkHosQzDZRaL",
"prompt_version": "address_query_runtime_v1",
"schema_version": "v1",
"fallback_type": "clarification",
"route_summary": null,
"fragments": [],
"requirements_extracted": [
{
"requirement_id": "R1",
"source_fragment_id": null,
"requirement_text": "привет как дела",
"subject_tokens": [],
"status": "clarification_needed",
"route": null
}
],
"coverage_report": {
"requirements_total": 1,
"requirements_covered": 0,
"requirements_uncovered": [],
"requirements_partially_covered": [],
"clarification_needed_for": [
"R1"
],
"out_of_scope_requirements": []
},
"routes": [],
"retrieval_status": [],
"retrieval_results": [],
"answer_grounding_check": {
"status": "no_grounded_answer",
"route_subject_match": true,
"missing_requirements": [
"R1"
],
"reasons": [
"Ни одно требование не получило подтвержденного покрытия.",
"Нет explainable-сигналов why_included в результатах выборки.",
"Недостаточно покрытия required anchors для claim-bound grounding.",
"Недостаточно допустимого evidence для обоснованного ответа.",
"Targeted evidence acquisition не дал допустимых попаданий по claim target path."
],
"why_included_summary": [],
"selection_reason_summary": []
},
"dropped_intent_segments": [],
"question_type_class": "why_breaks",
"company_anchors": {
"contract_numbers": [],
"document_numbers": [],
"dates": [],
"amounts": [],
"accounts": [],
"periods": [],
"document_types": [],
"all": []
},
"business_scope_raw": [],
"business_scope_resolved": [
"company_specific_accounting"
],
"company_grounding_applied": true,
"scope_resolution_reason": [
"settlement_claim_company_scope_recovery"
],
"company_scope_resolution_reason": [
"settlement_claim_company_scope_recovery"
],
"raw_time_anchor": null,
"raw_time_scope": null,
"resolved_time_anchor": null,
"resolved_primary_period": null,
"effective_primary_period": null,
"temporal_guard_input": null,
"temporal_alignment_status": "conflicting",
"temporal_resolution_source": "normalized_time_scope:missing",
"temporal_guard_basis": "none",
"temporal_guard_applied": false,
"temporal_guard_outcome": "passed",
"temporal_guard": {
"raw_time_anchor": null,
"raw_time_scope": null,
"resolved_time_anchor": null,
"resolved_primary_period": null,
"effective_primary_period": null,
"temporal_guard_input": null,
"temporal_alignment_status": "conflicting",
"temporal_resolution_source": "normalized_time_scope:missing",
"temporal_guard_basis": "none",
"temporal_guard_applied": false,
"temporal_guard_outcome": "passed",
"primary_period_window": null,
"allowed_context_window": null,
"controlled_temporal_expansion_enabled": false,
"context_expansion_reasons_allowed": [
"prehistory",
"carryover",
"post_period_closure",
"long_running_contract_context"
],
"normalized_anchor_drift_detected": false,
"reason_codes": [
"missing_resolved_primary_period"
]
},
"raw_numeric_tokens": [],
"classified_numeric_tokens": [],
"rejected_as_non_accounts": [],
"resolved_account_anchors": [],
"domain_polarity_guard": {
"applied": false,
"polarity": "not_applicable",
"outcome": "not_applicable",
"supplier_score": 0,
"customer_score": 0,
"account_scope": [],
"raw_numeric_tokens": [],
"classified_numeric_tokens": [],
"rejected_as_non_accounts": [],
"resolved_account_anchors": [],
"rejected_problem_units": 0,
"rejected_evidence": 0,
"critical_contradiction": false,
"reason_codes": []
},
"claim_anchor_audit": {
"claim_type": "prove_settlement_closure_state",
"settlement_role": "unknown",
"settlement_role_resolution_reason": [
"settlement_role_resolved_unknown"
],
"polarity_resolution_status": "unknown",
"required_anchors": [
"period",
"account_scope",
"counterparty_scope_or_contract",
"closure_signal"
],
"resolved_anchors": {
"period": [],
"account_scope": [],
"amounts": [],
"contract": [],
"document_numbers": [],
"document_types": [],
"counterparty_scope": [],
"advance_signal": [],
"closure_signal": [],
"vat_signal": [],
"chain_signal": [],
"close_signal": [],
"cost_scope": [],
"rbp_signal": [],
"writeoff_signal": [],
"fixed_asset_signal": [],
"amortization_signal": [],
"expected_fa_set": [],
"actual_fa_set": []
},
"missing_anchors": [
"period",
"account_scope",
"counterparty_scope_or_contract",
"closure_signal"
],
"claim_anchor_resolution_rate": 0,
"primary_period": null,
"allowed_context_window": null,
"context_expansion_reasons_allowed": [
"prehistory",
"carryover",
"post_period_closure",
"long_running_contract_context"
],
"reason_codes": [
"claim_missing_required_anchors",
"claim_anchor_resolution_low",
"unresolved_supplier_customer_polarity"
]
},
"settlement_role": "unknown",
"settlement_role_resolution_reason": [
"settlement_role_resolved_unknown"
],
"polarity_resolution_status": "unknown",
"targeted_evidence_acquisition": {
"claim_type": "prove_settlement_closure_state",
"required_checks": [
"payment_document_found",
"contract_matched",
"settlement_object_matched",
"closing_document_found",
"register_closure_entry_found",
"posting_link_found"
],
"check_status": {
"payment_document_found": "not_found",
"contract_matched": "not_found",
"settlement_object_matched": "not_found",
"closing_document_found": "not_found",
"register_closure_entry_found": "not_found",
"posting_link_found": "not_found"
},
"targeted_item_hits": 0,
"targeted_evidence_hits": 0,
"targeted_evidence_hit_rate": 0,
"targeted_evidence_source_refs": [],
"reason_codes": [
"targeted_evidence_not_found",
"targeted_evidence_hit_rate_low"
]
},
"evidence_admissibility_gate": {
"candidate_evidence_total": 0,
"admissible_evidence_count": 0,
"rejected_evidence_count": 0,
"rejected_item_count": 0,
"reject_breakdown": {
"wrong_period": 0,
"wrong_domain": 0,
"wrong_account_scope": 0,
"weak_source_mapping": 0,
"zero_live_match": 0,
"future_dated_or_out_of_window": 0
},
"category_breakdown": {
"hard_evidence": 0,
"supporting_signal": 0,
"inadmissible_noise": 0
},
"reason_codes": [
"no_admissible_evidence_for_grounded_answer"
]
},
"eligibility_time_basis": "none",
"grounded_answer_eligibility_guard": {
"eligible": false,
"temporal_passed": true,
"eligibility_time_basis": "none",
"business_scope_passed": true,
"polarity_passed": true,
"claim_anchors_passed": false,
"claim_anchor_resolution_rate": 0,
"missing_required_anchors": 4,
"admissible_evidence_count": 0,
"critical_contradiction": false,
"outcome": "limited_or_insufficient_evidence",
"grounding_mode": "limited_or_insufficient_evidence",
"reason_codes": [
"claim_anchor_coverage_insufficient",
"admissible_evidence_count_zero",
"targeted_evidence_hit_rate_zero"
]
},
"problem_centric_answer_applied": false,
"problem_units_used_count": 0,
"problem_answer_mode": "stage1_policy_v11",
"answer_structure_v11": {
"schema_version": "answer_structure_v1_1",
"answer_summary": "Нужны уточнения: без сужения фокуса надежный вывод невозможен.",
"direct_answer": "Есть признаки проблемы, но без уточнений по периоду и объекту вывод ненадежен.",
"mechanism_block": {
"status": "unresolved",
"mechanism_notes": [],
"limitation_reason_codes": []
},
"evidence_block": {
"evidence_ids": [],
"source_refs": [],
"mechanism_notes": [],
"coverage_note": "coverage_partial_or_limited"
},
"uncertainty_block": {
"open_uncertainties": [
"R1",
"missing_anchor:period",
"missing_anchor:account",
"missing_anchor:document_or_object",
"missing_anchor:counterparty"
],
"limitations": [
"Ни одно требование не получило подтвержденного покрытия.",
"Нет explainable-сигналов why_included в результатах выборки.",
"Недостаточно покрытия required anchors для claim-bound grounding.",
"Недостаточно допустимого evidence для обоснованного ответа.",
"Targeted evidence acquisition не дал допустимых попаданий по claim target path."
]
},
"next_step_block": {
"recommended_actions": [
"Дайте недостающие якоря (период/счет/объект), иначе сильный factual вывод невозможен."
],
"clarification_questions": [
"Уточните период проверки (например, июль 2020).",
"Уточните счет или группу счетов (например, 19, 60, 62).",
"Укажите документ/GUID/конкретный объект для трассировки.",
"Укажите контрагента или группу контрагентов.",
"Закройте уточнения для требований: R1."
]
}
},
"investigation_state_snapshot": {
"schema_version": "investigation_state_v1",
"session_id": "asst-2026-04-02_Address_GateBlock_Probe_WithMetrics-g001",
"status": "active",
"turn_index": 1,
"updated_at": "2026-04-02T19:11:09.280Z",
"question_id": "msg-wm3KZbU0j2",
"question_scope_id": "s:привет как дела",
"scope_origin": "underspecified",
"focus": {
"domain": null,
"period": null,
"primary_accounts": [],
"active_query_subject": "привет как дела"
},
"narrowing_status": "unknown",
"evidence_refs": [],
"open_uncertainties": [
"clarify:R1"
],
"last_answer_mode": "clarification_required",
"followup_context": {
"previous_question_id": null,
"last_user_message": "привет как дела",
"referenced_requirement_ids": [
"R1"
],
"active_domain": null,
"active_requirement_ids": [
"R1"
],
"uncovered_requirement_ids": [
"R1"
],
"last_problem_unit_id": null,
"settlement_next_actions": [],
"evidence_summary": [],
"question_scope_id": "s:привет как дела",
"scope_origin": "underspecified"
},
"query_mode_hint": "investigation_candidate"
},
"normalized": null
},
"error_code": null,
"error_message": null
}
]

File diff suppressed because one or more lines are too long

View File

@ -0,0 +1,6 @@
# Response Audit: 2026-04-02_Address_GateBlock_Probe_WithMetrics
| id | strict | route_health | reply_type | intent | limited_reason | question | assistant_first_line |
|---|---|---|---|---|---|---|---|
| G001 | False | blocked_clarification | clarification_required | None | None | привет как дела | Коротко: Наиболее вероятный механизм проблемы подтвержден частично и требует первичной проверки. Что сломано: |
| G002 | True | ok_or_factual | factual | counterparty_activity_lifecycle | None | выведи список заказчиков за все время | Собран профиль активности заказчиков (bank-doc activity aggregate). |

View File

@ -0,0 +1,90 @@
{
"run_id": "2026-04-02_Address_GateBlock_Probe_WithMetrics",
"generated_at": "2026-04-02T22:11:14",
"source_questions_file": "X:\\1C\\NDC_1C\\docs\\ADDRESS\\question_sets\\temp_gate_block_probe_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": "semantic",
"totals": {
"questions_total": 2,
"ok_200_count": 2,
"semantic_pass_count": 1,
"semantic_pass_rate": 0.5,
"route_pass_count": 1,
"route_pass_rate": 0.5,
"strict_pass_count": 1,
"strict_pass_rate": 0.5,
"factual_count": 1,
"partial_coverage_count": 0,
"clarification_required_count": 1,
"http_error_count": 0,
"llm_decomposition_attempted_count": 1,
"llm_decomposition_applied_count": 0,
"llm_fallback_count": 0,
"llm_fallback_rate": 0.0,
"tool_gate_blocked_count": 0,
"tool_gate_blocked_rate": 0.0,
"avg_elapsed_ms": 8938
},
"distributions": {
"reply_type": {
"clarification_required": 1,
"factual": 1
},
"actual_intent": {
"None": 1,
"counterparty_activity_lifecycle": 1
},
"actual_mode": {
"None": 1,
"address_query": 1
},
"mcp_call_status": {
"None": 1,
"matched_non_empty": 1
},
"limited_reason_category": {},
"route_health": {
"blocked_clarification": 1,
"ok_or_factual": 1
},
"tool_gate_decision": {
"run_address_lane": 1
},
"tool_gate_reason": {
"address_mode_classifier_detected": 1
}
},
"address_llm_predecompose_metrics": {
"overall": {
"llm_attempted": 1,
"llm_applied": 0,
"fallback_used": 0,
"fallback_rate": 0.0,
"tool_gate_blocked": 0,
"gate_block_rate": 0.0
},
"by_intent": {
"unknown": {
"total": 1,
"llm_attempted": 0,
"llm_applied": 0,
"fallback_used": 0,
"tool_gate_blocked": 0,
"fallback_rate": 0.0,
"gate_block_rate": 0.0
},
"counterparty_activity_lifecycle": {
"total": 1,
"llm_attempted": 1,
"llm_applied": 0,
"fallback_used": 0,
"tool_gate_blocked": 0,
"fallback_rate": 0.0,
"gate_block_rate": 0.0
}
}
}
}

View File

@ -0,0 +1,33 @@
# 2026-04-02_Address_GateBlock_Probe_WithMetrics_02
Generated at: 2026-04-02T22:12:56
Questions file: X:\1C\NDC_1C\docs\ADDRESS\question_sets\temp_gate_block_probe_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: semantic
## Totals
- questions_total: 2
- ok_200_count: 2
- semantic_pass_count: 1
- semantic_pass_rate: 0.5
- route_pass_count: 1
- route_pass_rate: 0.5
- strict_pass_count: 1
- strict_pass_rate: 0.5
- factual_count: 1
- partial_coverage_count: 0
- clarification_required_count: 1
- http_error_count: 0
- llm_decomposition_attempted_count: 2
- llm_decomposition_applied_count: 0
- llm_fallback_count: 0
- llm_fallback_rate: 0.0
- tool_gate_blocked_count: 1
- tool_gate_blocked_rate: 0.5
- avg_elapsed_ms: 9280
## Files
- run_summary.json
- full_live_results.json
- failures_only.json

View File

@ -0,0 +1,429 @@
[
{
"index": 1,
"id": "G001",
"question": "привет как дела",
"session": null,
"session_id": "asst-2026-04-02_Address_GateBlock_Probe_WithMetrics_02-g001",
"status_code": 200,
"ok": true,
"elapsed_ms": 13029,
"reply_type": "clarification_required",
"trace_id": "7eMBTZk2jJHzM1",
"assistant_reply": "Коротко: Наиболее вероятный механизм проблемы подтвержден частично и требует первичной проверки. Что сломано:\n- Есть признаки проблемы, но без уточнений по периоду и объекту вывод ненадежен. Почему это похоже на проблему:\n- Сигнал проблемы есть, но механизм подтвержден не полностью. На чем это основано:\n- Опора частичная: часть требований покрыта не полностью.\n- Отдельно не подтверждено или покрыто частично: R1. Что проверить первым:\n- Уточните период проверки, чтобы подтвердить проблему без лишнего шума.\n- Проверьте связку документов и проводок по проблемному участку в указанном периоде.\n- Уточните период проверки (например, июль 2020). Ограничения:\n- Ни одно требование не получило подтвержденного покрытия.\n- Нет explainable-сигналов why_included в результатах выборки.\n- required anchors claim-bound grounding.\n- evidence.\n- Targeted evidence acquisition claim target path.",
"assistant_reply_first_line": "Коротко: Наиболее вероятный механизм проблемы подтвержден частично и требует первичной проверки. Что сломано:",
"expected_intent": null,
"actual_intent": null,
"intent_match": true,
"expected_mode": "address_query",
"actual_mode": null,
"mode_match": false,
"expected_reply_type": null,
"reply_match": true,
"semantic_pass": false,
"route_pass": false,
"route_health": "blocked_clarification",
"strict_policy": "semantic",
"strict_pass": false,
"selected_recipe": null,
"missing_required_filters": null,
"match_failure_stage": null,
"match_failure_reason": null,
"rows_fetched": null,
"rows_matched": null,
"mcp_call_status": null,
"limited_reason_category": null,
"llm_decomposition_attempted": true,
"llm_decomposition_applied": null,
"llm_decomposition_reason": null,
"llm_canonical_candidate_detected": null,
"fallback_rule_hit": null,
"tool_gate_decision": "skip_address_lane",
"tool_gate_reason": "no_address_signal_after_l0",
"predecompose_contract_intent": null,
"predecompose_contract_aggregation_profile": null,
"predecompose_contract_period_scope": null,
"debug_payload": {
"trace_id": "7eMBTZk2jJHzM1",
"prompt_version": "address_query_runtime_v1",
"schema_version": "v1",
"fallback_type": "clarification",
"route_summary": null,
"fragments": [],
"requirements_extracted": [
{
"requirement_id": "R1",
"source_fragment_id": null,
"requirement_text": "привет как дела",
"subject_tokens": [],
"status": "clarification_needed",
"route": null
}
],
"coverage_report": {
"requirements_total": 1,
"requirements_covered": 0,
"requirements_uncovered": [],
"requirements_partially_covered": [],
"clarification_needed_for": [
"R1"
],
"out_of_scope_requirements": []
},
"routes": [],
"retrieval_status": [],
"retrieval_results": [],
"answer_grounding_check": {
"status": "no_grounded_answer",
"route_subject_match": true,
"missing_requirements": [
"R1"
],
"reasons": [
"Ни одно требование не получило подтвержденного покрытия.",
"Нет explainable-сигналов why_included в результатах выборки.",
"Недостаточно покрытия required anchors для claim-bound grounding.",
"Недостаточно допустимого evidence для обоснованного ответа.",
"Targeted evidence acquisition не дал допустимых попаданий по claim target path."
],
"why_included_summary": [],
"selection_reason_summary": []
},
"dropped_intent_segments": [],
"question_type_class": "why_breaks",
"company_anchors": {
"contract_numbers": [],
"document_numbers": [],
"dates": [],
"amounts": [],
"accounts": [],
"periods": [],
"document_types": [],
"all": []
},
"business_scope_raw": [],
"business_scope_resolved": [
"company_specific_accounting"
],
"company_grounding_applied": true,
"scope_resolution_reason": [
"settlement_claim_company_scope_recovery"
],
"company_scope_resolution_reason": [
"settlement_claim_company_scope_recovery"
],
"raw_time_anchor": null,
"raw_time_scope": null,
"resolved_time_anchor": null,
"resolved_primary_period": null,
"effective_primary_period": null,
"temporal_guard_input": null,
"temporal_alignment_status": "conflicting",
"temporal_resolution_source": "normalized_time_scope:missing",
"temporal_guard_basis": "none",
"temporal_guard_applied": false,
"temporal_guard_outcome": "passed",
"temporal_guard": {
"raw_time_anchor": null,
"raw_time_scope": null,
"resolved_time_anchor": null,
"resolved_primary_period": null,
"effective_primary_period": null,
"temporal_guard_input": null,
"temporal_alignment_status": "conflicting",
"temporal_resolution_source": "normalized_time_scope:missing",
"temporal_guard_basis": "none",
"temporal_guard_applied": false,
"temporal_guard_outcome": "passed",
"primary_period_window": null,
"allowed_context_window": null,
"controlled_temporal_expansion_enabled": false,
"context_expansion_reasons_allowed": [
"prehistory",
"carryover",
"post_period_closure",
"long_running_contract_context"
],
"normalized_anchor_drift_detected": false,
"reason_codes": [
"missing_resolved_primary_period"
]
},
"raw_numeric_tokens": [],
"classified_numeric_tokens": [],
"rejected_as_non_accounts": [],
"resolved_account_anchors": [],
"domain_polarity_guard": {
"applied": false,
"polarity": "not_applicable",
"outcome": "not_applicable",
"supplier_score": 0,
"customer_score": 0,
"account_scope": [],
"raw_numeric_tokens": [],
"classified_numeric_tokens": [],
"rejected_as_non_accounts": [],
"resolved_account_anchors": [],
"rejected_problem_units": 0,
"rejected_evidence": 0,
"critical_contradiction": false,
"reason_codes": []
},
"claim_anchor_audit": {
"claim_type": "prove_settlement_closure_state",
"settlement_role": "unknown",
"settlement_role_resolution_reason": [
"settlement_role_resolved_unknown"
],
"polarity_resolution_status": "unknown",
"required_anchors": [
"period",
"account_scope",
"counterparty_scope_or_contract",
"closure_signal"
],
"resolved_anchors": {
"period": [],
"account_scope": [],
"amounts": [],
"contract": [],
"document_numbers": [],
"document_types": [],
"counterparty_scope": [],
"advance_signal": [],
"closure_signal": [],
"vat_signal": [],
"chain_signal": [],
"close_signal": [],
"cost_scope": [],
"rbp_signal": [],
"writeoff_signal": [],
"fixed_asset_signal": [],
"amortization_signal": [],
"expected_fa_set": [],
"actual_fa_set": []
},
"missing_anchors": [
"period",
"account_scope",
"counterparty_scope_or_contract",
"closure_signal"
],
"claim_anchor_resolution_rate": 0,
"primary_period": null,
"allowed_context_window": null,
"context_expansion_reasons_allowed": [
"prehistory",
"carryover",
"post_period_closure",
"long_running_contract_context"
],
"reason_codes": [
"claim_missing_required_anchors",
"claim_anchor_resolution_low",
"unresolved_supplier_customer_polarity"
]
},
"settlement_role": "unknown",
"settlement_role_resolution_reason": [
"settlement_role_resolved_unknown"
],
"polarity_resolution_status": "unknown",
"targeted_evidence_acquisition": {
"claim_type": "prove_settlement_closure_state",
"required_checks": [
"payment_document_found",
"contract_matched",
"settlement_object_matched",
"closing_document_found",
"register_closure_entry_found",
"posting_link_found"
],
"check_status": {
"payment_document_found": "not_found",
"contract_matched": "not_found",
"settlement_object_matched": "not_found",
"closing_document_found": "not_found",
"register_closure_entry_found": "not_found",
"posting_link_found": "not_found"
},
"targeted_item_hits": 0,
"targeted_evidence_hits": 0,
"targeted_evidence_hit_rate": 0,
"targeted_evidence_source_refs": [],
"reason_codes": [
"targeted_evidence_not_found",
"targeted_evidence_hit_rate_low"
]
},
"evidence_admissibility_gate": {
"candidate_evidence_total": 0,
"admissible_evidence_count": 0,
"rejected_evidence_count": 0,
"rejected_item_count": 0,
"reject_breakdown": {
"wrong_period": 0,
"wrong_domain": 0,
"wrong_account_scope": 0,
"weak_source_mapping": 0,
"zero_live_match": 0,
"future_dated_or_out_of_window": 0
},
"category_breakdown": {
"hard_evidence": 0,
"supporting_signal": 0,
"inadmissible_noise": 0
},
"reason_codes": [
"no_admissible_evidence_for_grounded_answer"
]
},
"eligibility_time_basis": "none",
"grounded_answer_eligibility_guard": {
"eligible": false,
"temporal_passed": true,
"eligibility_time_basis": "none",
"business_scope_passed": true,
"polarity_passed": true,
"claim_anchors_passed": false,
"claim_anchor_resolution_rate": 0,
"missing_required_anchors": 4,
"admissible_evidence_count": 0,
"critical_contradiction": false,
"outcome": "limited_or_insufficient_evidence",
"grounding_mode": "limited_or_insufficient_evidence",
"reason_codes": [
"claim_anchor_coverage_insufficient",
"admissible_evidence_count_zero",
"targeted_evidence_hit_rate_zero"
]
},
"problem_centric_answer_applied": false,
"problem_units_used_count": 0,
"problem_answer_mode": "stage1_policy_v11",
"address_llm_predecompose_attempted": true,
"address_llm_predecompose_applied": false,
"address_llm_predecompose_reason": "no_usable_fragment",
"address_llm_predecompose_provider": "local",
"address_fallback_rule_hit": null,
"address_tool_gate_decision": "skip_address_lane",
"address_tool_gate_reason": "no_address_signal_after_l0",
"address_llm_predecompose_contract": {
"schema_version": "address_llm_predecompose_contract_v1",
"source_message": "привет как дела",
"canonical_message": "привет как дела",
"mode": "unsupported",
"mode_confidence": "low",
"query_shape": "UNKNOWN",
"query_shape_confidence": "low",
"intent": "unknown",
"intent_confidence": "low",
"entities": {
"account": null,
"counterparty": null,
"contract": null,
"document_type": null,
"document_ref": null,
"organization": null
},
"period": {
"scope": "unspecified",
"period_from": null,
"period_to": null,
"as_of_date": null,
"has_explicit_period": false
},
"aggregation_profile": "unknown"
},
"answer_structure_v11": {
"schema_version": "answer_structure_v1_1",
"answer_summary": "Нужны уточнения: без сужения фокуса надежный вывод невозможен.",
"direct_answer": "Есть признаки проблемы, но без уточнений по периоду и объекту вывод ненадежен.",
"mechanism_block": {
"status": "unresolved",
"mechanism_notes": [],
"limitation_reason_codes": []
},
"evidence_block": {
"evidence_ids": [],
"source_refs": [],
"mechanism_notes": [],
"coverage_note": "coverage_partial_or_limited"
},
"uncertainty_block": {
"open_uncertainties": [
"R1",
"missing_anchor:period",
"missing_anchor:account",
"missing_anchor:document_or_object",
"missing_anchor:counterparty"
],
"limitations": [
"Ни одно требование не получило подтвержденного покрытия.",
"Нет explainable-сигналов why_included в результатах выборки.",
"Недостаточно покрытия required anchors для claim-bound grounding.",
"Недостаточно допустимого evidence для обоснованного ответа.",
"Targeted evidence acquisition не дал допустимых попаданий по claim target path."
]
},
"next_step_block": {
"recommended_actions": [
"Дайте недостающие якоря (период/счет/объект), иначе сильный factual вывод невозможен."
],
"clarification_questions": [
"Уточните период проверки (например, июль 2020).",
"Уточните счет или группу счетов (например, 19, 60, 62).",
"Укажите документ/GUID/конкретный объект для трассировки.",
"Укажите контрагента или группу контрагентов.",
"Закройте уточнения для требований: R1."
]
}
},
"investigation_state_snapshot": {
"schema_version": "investigation_state_v1",
"session_id": "asst-2026-04-02_Address_GateBlock_Probe_WithMetrics_02-g001",
"status": "active",
"turn_index": 1,
"updated_at": "2026-04-02T19:12:50.522Z",
"question_id": "msg-v7LY-ucCiX",
"question_scope_id": "s:привет как дела",
"scope_origin": "underspecified",
"focus": {
"domain": null,
"period": null,
"primary_accounts": [],
"active_query_subject": "привет как дела"
},
"narrowing_status": "unknown",
"evidence_refs": [],
"open_uncertainties": [
"clarify:R1"
],
"last_answer_mode": "clarification_required",
"followup_context": {
"previous_question_id": null,
"last_user_message": "привет как дела",
"referenced_requirement_ids": [
"R1"
],
"active_domain": null,
"active_requirement_ids": [
"R1"
],
"uncovered_requirement_ids": [
"R1"
],
"last_problem_unit_id": null,
"settlement_next_actions": [],
"evidence_summary": [],
"question_scope_id": "s:привет как дела",
"scope_origin": "underspecified"
},
"query_mode_hint": "investigation_candidate"
},
"normalized": null
},
"error_code": null,
"error_message": null
}
]

File diff suppressed because one or more lines are too long

View File

@ -0,0 +1,6 @@
# Response Audit: 2026-04-02_Address_GateBlock_Probe_WithMetrics_02
| id | strict | route_health | reply_type | intent | limited_reason | question | assistant_first_line |
|---|---|---|---|---|---|---|---|
| G001 | False | blocked_clarification | clarification_required | None | None | привет как дела | Коротко: Наиболее вероятный механизм проблемы подтвержден частично и требует первичной проверки. Что сломано: |
| G002 | True | ok_or_factual | factual | counterparty_activity_lifecycle | None | выведи список заказчиков за все время | Собран профиль активности заказчиков (bank-doc activity aggregate). |

View File

@ -0,0 +1,92 @@
{
"run_id": "2026-04-02_Address_GateBlock_Probe_WithMetrics_02",
"generated_at": "2026-04-02T22:12:56",
"source_questions_file": "X:\\1C\\NDC_1C\\docs\\ADDRESS\\question_sets\\temp_gate_block_probe_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": "semantic",
"totals": {
"questions_total": 2,
"ok_200_count": 2,
"semantic_pass_count": 1,
"semantic_pass_rate": 0.5,
"route_pass_count": 1,
"route_pass_rate": 0.5,
"strict_pass_count": 1,
"strict_pass_rate": 0.5,
"factual_count": 1,
"partial_coverage_count": 0,
"clarification_required_count": 1,
"http_error_count": 0,
"llm_decomposition_attempted_count": 2,
"llm_decomposition_applied_count": 0,
"llm_fallback_count": 0,
"llm_fallback_rate": 0.0,
"tool_gate_blocked_count": 1,
"tool_gate_blocked_rate": 0.5,
"avg_elapsed_ms": 9280
},
"distributions": {
"reply_type": {
"clarification_required": 1,
"factual": 1
},
"actual_intent": {
"None": 1,
"counterparty_activity_lifecycle": 1
},
"actual_mode": {
"None": 1,
"address_query": 1
},
"mcp_call_status": {
"None": 1,
"matched_non_empty": 1
},
"limited_reason_category": {},
"route_health": {
"blocked_clarification": 1,
"ok_or_factual": 1
},
"tool_gate_decision": {
"skip_address_lane": 1,
"run_address_lane": 1
},
"tool_gate_reason": {
"no_address_signal_after_l0": 1,
"address_mode_classifier_detected": 1
}
},
"address_llm_predecompose_metrics": {
"overall": {
"llm_attempted": 2,
"llm_applied": 0,
"fallback_used": 0,
"fallback_rate": 0.0,
"tool_gate_blocked": 1,
"gate_block_rate": 0.5
},
"by_intent": {
"unknown": {
"total": 1,
"llm_attempted": 1,
"llm_applied": 0,
"fallback_used": 0,
"tool_gate_blocked": 1,
"fallback_rate": 0.0,
"gate_block_rate": 1.0
},
"counterparty_activity_lifecycle": {
"total": 1,
"llm_attempted": 1,
"llm_applied": 0,
"fallback_used": 0,
"tool_gate_blocked": 0,
"fallback_rate": 0.0,
"gate_block_rate": 0.0
}
}
}
}

View File

@ -0,0 +1,28 @@
# 2026-04-02_Address_General5_Live_Check_AfterFix_01
Generated at: 2026-04-02T19:27:58
Questions file: X:\1C\NDC_1C\docs\ADDRESS\question_sets\temp_general5_live_check_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: 5
- ok_200_count: 5
- semantic_pass_count: 5
- semantic_pass_rate: 1.0
- route_pass_count: 0
- route_pass_rate: 0.0
- strict_pass_count: 0
- strict_pass_rate: 0.0
- factual_count: 0
- partial_coverage_count: 5
- clarification_required_count: 0
- http_error_count: 0
- llm_decomposition_applied_count: 0
- avg_elapsed_ms: 2632
## Files
- run_summary.json
- full_live_results.json
- failures_only.json

View File

@ -0,0 +1,673 @@
[
{
"index": 1,
"id": "Q1",
"question": "За какие годы в базе есть данные?",
"session": null,
"session_id": "asst-2026-04-02_Address_General5_Live_Check_AfterFix_01-q1",
"status_code": 200,
"ok": true,
"elapsed_ms": 962,
"reply_type": "partial_coverage",
"trace_id": "address-eW6Yb7i_tq",
"assistant_reply": "Не удалось выполнить адресный live-запрос в V1.\nПричина: live MCP вызов завершился ошибкой.\nЧто нужно уточнить: {ВнешняяОбработка.MCPToolkit.Форма.Форма.Форма(1989)}: Ошибка при вызове метода контекста (Выполнить): {(10, 24)}: Синтаксическая ошибка\nДвижения.Период <= <<?>>ТЕКУЩАЯДАТА().",
"assistant_reply_first_line": "Не удалось выполнить адресный live-запрос в V1.",
"expected_intent": "period_coverage_profile",
"actual_intent": "period_coverage_profile",
"intent_match": true,
"expected_mode": "address_query",
"actual_mode": "address_query",
"mode_match": true,
"expected_reply_type": null,
"reply_match": true,
"semantic_pass": true,
"route_pass": false,
"route_health": "blocked_execution_error",
"strict_policy": "route",
"strict_pass": false,
"selected_recipe": "address_period_coverage_profile_v1",
"missing_required_filters": [],
"match_failure_stage": "none",
"match_failure_reason": null,
"rows_fetched": 0,
"rows_matched": 0,
"mcp_call_status": "error",
"limited_reason_category": "execution_error",
"llm_decomposition_applied": false,
"llm_decomposition_reason": "not_address_like",
"fallback_rule_hit": null,
"debug_payload": {
"trace_id": "address-eW6Yb7i_tq",
"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": [
"management_profile_signal_detected",
"shape_not_detected",
"period_coverage_profile_signal_detected",
"{ВнешняяОбработка.MCPToolkit.Форма.Форма.Форма(1989)}: Ошибка при вызове метода контекста (Выполнить): {(10, 24)}: Синтаксическая ошибка\nДвижения.Период <= <<?>>ТЕКУЩАЯДАТА()"
],
"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": "period_coverage_profile",
"detected_intent_confidence": "high",
"extracted_filters": {
"sort": "period_desc"
},
"missing_required_filters": [],
"selected_recipe": "address_period_coverage_profile_v1",
"mcp_call_status_legacy": "error",
"account_scope_mode": "preferred",
"account_scope_fallback_applied": false,
"anchor_type": "unknown",
"anchor_value_raw": null,
"anchor_value_resolved": null,
"resolver_confidence": "low",
"ambiguity_count": 0,
"match_failure_stage": "none",
"match_failure_reason": null,
"mcp_call_status": "error",
"rows_fetched": 0,
"raw_rows_received": 0,
"rows_after_account_scope": 0,
"rows_after_recipe_filter": 0,
"rows_materialized": 0,
"rows_matched": 0,
"raw_row_keys_sample": [],
"materialization_drop_reason": "none",
"account_token_raw": null,
"account_token_normalized": null,
"account_scope_fields_checked": [
"account_dt",
"account_kt",
"registrator",
"analytics"
],
"account_scope_match_strategy": "account_code_regex_plus_alias_map_v1",
"account_scope_drop_reason": "not_applicable",
"runtime_readiness": "UNKNOWN",
"limited_reason_category": "execution_error",
"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": "address_mode_classifier_detected",
"answer_structure_v11": null,
"investigation_state_snapshot": null,
"normalized": null,
"normalizer_output": null
},
"error_code": null,
"error_message": null
},
{
"index": 2,
"id": "Q2",
"question": "Какой год самый активный по количеству документов?",
"session": null,
"session_id": "asst-2026-04-02_Address_General5_Live_Check_AfterFix_01-q2",
"status_code": 200,
"ok": true,
"elapsed_ms": 5072,
"reply_type": "partial_coverage",
"trace_id": "address-BKVNDThPUd",
"assistant_reply": "Не удалось выполнить адресный live-запрос в V1.\nПричина: live MCP вызов завершился ошибкой.\nЧто нужно уточнить: {ВнешняяОбработка.MCPToolkit.Форма.Форма.Форма(1989)}: Ошибка при вызове метода контекста (Выполнить): {(10, 24)}: Синтаксическая ошибка\nДвижения.Период <= <<?>>ТЕКУЩАЯДАТА().",
"assistant_reply_first_line": "Не удалось выполнить адресный live-запрос в V1.",
"expected_intent": "period_coverage_profile",
"actual_intent": "period_coverage_profile",
"intent_match": true,
"expected_mode": "address_query",
"actual_mode": "address_query",
"mode_match": true,
"expected_reply_type": null,
"reply_match": true,
"semantic_pass": true,
"route_pass": false,
"route_health": "blocked_execution_error",
"strict_policy": "route",
"strict_pass": false,
"selected_recipe": "address_period_coverage_profile_v1",
"missing_required_filters": [],
"match_failure_stage": "none",
"match_failure_reason": null,
"rows_fetched": 0,
"rows_matched": 0,
"mcp_call_status": "error",
"limited_reason_category": "execution_error",
"llm_decomposition_applied": false,
"llm_decomposition_reason": "normalized_fragment_rejected_intent_conflict",
"fallback_rule_hit": null,
"debug_payload": {
"trace_id": "address-BKVNDThPUd",
"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": [
"management_profile_signal_detected",
"document_list_signal_detected",
"period_coverage_profile_signal_detected",
"{ВнешняяОбработка.MCPToolkit.Форма.Форма.Форма(1989)}: Ошибка при вызове метода контекста (Выполнить): {(10, 24)}: Синтаксическая ошибка\nДвижения.Период <= <<?>>ТЕКУЩАЯДАТА()"
],
"why_included_summary": [],
"selection_reason_summary": []
},
"dropped_intent_segments": [],
"detected_mode": "address_query",
"detected_mode_confidence": "medium",
"query_shape": "DOCUMENT_LIST",
"query_shape_confidence": "medium",
"detected_intent": "period_coverage_profile",
"detected_intent_confidence": "high",
"extracted_filters": {
"sort": "period_desc"
},
"missing_required_filters": [],
"selected_recipe": "address_period_coverage_profile_v1",
"mcp_call_status_legacy": "error",
"account_scope_mode": "preferred",
"account_scope_fallback_applied": false,
"anchor_type": "unknown",
"anchor_value_raw": null,
"anchor_value_resolved": null,
"resolver_confidence": "low",
"ambiguity_count": 0,
"match_failure_stage": "none",
"match_failure_reason": null,
"mcp_call_status": "error",
"rows_fetched": 0,
"raw_rows_received": 0,
"rows_after_account_scope": 0,
"rows_after_recipe_filter": 0,
"rows_materialized": 0,
"rows_matched": 0,
"raw_row_keys_sample": [],
"materialization_drop_reason": "none",
"account_token_raw": null,
"account_token_normalized": null,
"account_scope_fields_checked": [
"account_dt",
"account_kt",
"registrator",
"analytics"
],
"account_scope_match_strategy": "account_code_regex_plus_alias_map_v1",
"account_scope_drop_reason": "not_applicable",
"runtime_readiness": "UNKNOWN",
"limited_reason_category": "execution_error",
"response_type": "LIMITED_WITH_REASON",
"execution_lane": "address_query",
"llm_decomposition_applied": false,
"llm_decomposition_attempted": true,
"llm_provider_used": "local",
"llm_decomposition_trace_id": "bgFD0eUh97bbae",
"llm_decomposition_effective_message": "Какой год самый активный по количеству документов?",
"llm_decomposition_reason": "normalized_fragment_rejected_intent_conflict",
"fallback_rule_hit": null,
"sanitized_user_message": "какой год самый активный по количеству документов?",
"tool_gate_decision": "run_address_lane",
"tool_gate_reason": "address_mode_classifier_detected",
"answer_structure_v11": null,
"investigation_state_snapshot": null,
"normalized": null,
"normalizer_output": {
"trace_id": "bgFD0eUh97bbae",
"prompt_version": "normalizer_v2_0_2",
"applied": false,
"effective_message": "Какой год самый активный по количеству документов?"
}
},
"error_code": null,
"error_message": null
},
{
"index": 3,
"id": "Q3",
"question": "Какой месяц самый активный по количеству операций?",
"session": null,
"session_id": "asst-2026-04-02_Address_General5_Live_Check_AfterFix_01-q3",
"status_code": 200,
"ok": true,
"elapsed_ms": 1066,
"reply_type": "partial_coverage",
"trace_id": "address-lxBpVpL9YV",
"assistant_reply": "Не удалось выполнить адресный live-запрос в V1.\nПричина: live MCP вызов завершился ошибкой.\nЧто нужно уточнить: {ВнешняяОбработка.MCPToolkit.Форма.Форма.Форма(1989)}: Ошибка при вызове метода контекста (Выполнить): {(10, 24)}: Синтаксическая ошибка\nДвижения.Период <= <<?>>ТЕКУЩАЯДАТА().",
"assistant_reply_first_line": "Не удалось выполнить адресный live-запрос в V1.",
"expected_intent": "period_coverage_profile",
"actual_intent": "period_coverage_profile",
"intent_match": true,
"expected_mode": "address_query",
"actual_mode": "address_query",
"mode_match": true,
"expected_reply_type": null,
"reply_match": true,
"semantic_pass": true,
"route_pass": false,
"route_health": "blocked_execution_error",
"strict_policy": "route",
"strict_pass": false,
"selected_recipe": "address_period_coverage_profile_v1",
"missing_required_filters": [],
"match_failure_stage": "none",
"match_failure_reason": null,
"rows_fetched": 0,
"rows_matched": 0,
"mcp_call_status": "error",
"limited_reason_category": "execution_error",
"llm_decomposition_applied": false,
"llm_decomposition_reason": "not_address_like",
"fallback_rule_hit": null,
"debug_payload": {
"trace_id": "address-lxBpVpL9YV",
"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": [
"management_profile_signal_detected",
"shape_not_detected",
"period_coverage_profile_signal_detected",
"{ВнешняяОбработка.MCPToolkit.Форма.Форма.Форма(1989)}: Ошибка при вызове метода контекста (Выполнить): {(10, 24)}: Синтаксическая ошибка\nДвижения.Период <= <<?>>ТЕКУЩАЯДАТА()"
],
"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": "period_coverage_profile",
"detected_intent_confidence": "high",
"extracted_filters": {
"sort": "period_desc"
},
"missing_required_filters": [],
"selected_recipe": "address_period_coverage_profile_v1",
"mcp_call_status_legacy": "error",
"account_scope_mode": "preferred",
"account_scope_fallback_applied": false,
"anchor_type": "unknown",
"anchor_value_raw": null,
"anchor_value_resolved": null,
"resolver_confidence": "low",
"ambiguity_count": 0,
"match_failure_stage": "none",
"match_failure_reason": null,
"mcp_call_status": "error",
"rows_fetched": 0,
"raw_rows_received": 0,
"rows_after_account_scope": 0,
"rows_after_recipe_filter": 0,
"rows_materialized": 0,
"rows_matched": 0,
"raw_row_keys_sample": [],
"materialization_drop_reason": "none",
"account_token_raw": null,
"account_token_normalized": null,
"account_scope_fields_checked": [
"account_dt",
"account_kt",
"registrator",
"analytics"
],
"account_scope_match_strategy": "account_code_regex_plus_alias_map_v1",
"account_scope_drop_reason": "not_applicable",
"runtime_readiness": "UNKNOWN",
"limited_reason_category": "execution_error",
"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": "address_mode_classifier_detected",
"answer_structure_v11": null,
"investigation_state_snapshot": null,
"normalized": null,
"normalizer_output": null
},
"error_code": null,
"error_message": null
},
{
"index": 4,
"id": "Q4",
"question": "Какие типы документов используются чаще всего в базе?",
"session": null,
"session_id": "asst-2026-04-02_Address_General5_Live_Check_AfterFix_01-q4",
"status_code": 200,
"ok": true,
"elapsed_ms": 5058,
"reply_type": "partial_coverage",
"trace_id": "address-0_1nOMvz1f",
"assistant_reply": "Не удалось выполнить адресный live-запрос в V1.\nПричина: live MCP вызов завершился ошибкой.\nЧто нужно уточнить: {ВнешняяОбработка.MCPToolkit.Форма.Форма.Форма(1989)}: Ошибка при вызове метода контекста (Выполнить): {(10, 24)}: Синтаксическая ошибка\nДвижения.Период <= <<?>>ТЕКУЩАЯДАТА().",
"assistant_reply_first_line": "Не удалось выполнить адресный live-запрос в V1.",
"expected_intent": "document_type_and_account_section_profile",
"actual_intent": "document_type_and_account_section_profile",
"intent_match": true,
"expected_mode": "address_query",
"actual_mode": "address_query",
"mode_match": true,
"expected_reply_type": null,
"reply_match": true,
"semantic_pass": true,
"route_pass": false,
"route_health": "blocked_execution_error",
"strict_policy": "route",
"strict_pass": false,
"selected_recipe": "address_document_type_and_account_section_profile_v1",
"missing_required_filters": [],
"match_failure_stage": "none",
"match_failure_reason": null,
"rows_fetched": 0,
"rows_matched": 0,
"mcp_call_status": "error",
"limited_reason_category": "execution_error",
"llm_decomposition_applied": false,
"llm_decomposition_reason": "normalized_fragment_same",
"fallback_rule_hit": null,
"debug_payload": {
"trace_id": "address-0_1nOMvz1f",
"prompt_version": "address_query_runtime_v1",
"schema_version": "address_query_runtime_v1",
"fallback_type": "partial",
"route_summary": null,
"fragments": [],
"requirements_extracted": [],
"coverage_report": {
"requirements_total": 0,
"requirements_covered": 0,
"requirements_uncovered": [],
"requirements_partially_covered": [],
"clarification_needed_for": [],
"out_of_scope_requirements": []
},
"routes": [],
"retrieval_status": [],
"retrieval_results": [],
"answer_grounding_check": {
"status": "partial",
"route_subject_match": true,
"missing_requirements": [],
"reasons": [
"address_action_detected",
"address_entity_detected",
"document_list_signal_detected",
"document_type_and_account_section_profile_signal_detected",
"{ВнешняяОбработка.MCPToolkit.Форма.Форма.Форма(1989)}: Ошибка при вызове метода контекста (Выполнить): {(10, 24)}: Синтаксическая ошибка\nДвижения.Период <= <<?>>ТЕКУЩАЯДАТА()"
],
"why_included_summary": [],
"selection_reason_summary": []
},
"dropped_intent_segments": [],
"detected_mode": "address_query",
"detected_mode_confidence": "high",
"query_shape": "DOCUMENT_LIST",
"query_shape_confidence": "medium",
"detected_intent": "document_type_and_account_section_profile",
"detected_intent_confidence": "high",
"extracted_filters": {
"sort": "period_desc"
},
"missing_required_filters": [],
"selected_recipe": "address_document_type_and_account_section_profile_v1",
"mcp_call_status_legacy": "error",
"account_scope_mode": "preferred",
"account_scope_fallback_applied": false,
"anchor_type": "unknown",
"anchor_value_raw": null,
"anchor_value_resolved": null,
"resolver_confidence": "low",
"ambiguity_count": 0,
"match_failure_stage": "none",
"match_failure_reason": null,
"mcp_call_status": "error",
"rows_fetched": 0,
"raw_rows_received": 0,
"rows_after_account_scope": 0,
"rows_after_recipe_filter": 0,
"rows_materialized": 0,
"rows_matched": 0,
"raw_row_keys_sample": [],
"materialization_drop_reason": "none",
"account_token_raw": null,
"account_token_normalized": null,
"account_scope_fields_checked": [
"account_dt",
"account_kt",
"registrator",
"analytics"
],
"account_scope_match_strategy": "account_code_regex_plus_alias_map_v1",
"account_scope_drop_reason": "not_applicable",
"runtime_readiness": "UNKNOWN",
"limited_reason_category": "execution_error",
"response_type": "LIMITED_WITH_REASON",
"execution_lane": "address_query",
"llm_decomposition_applied": false,
"llm_decomposition_attempted": true,
"llm_provider_used": "local",
"llm_decomposition_trace_id": "KAAw7U8orkHpRG",
"llm_decomposition_effective_message": "Какие типы документов используются чаще всего в базе?",
"llm_decomposition_reason": "normalized_fragment_same",
"fallback_rule_hit": null,
"sanitized_user_message": "какие типы документов используются чаще всего в базе?",
"tool_gate_decision": "run_address_lane",
"tool_gate_reason": "address_mode_classifier_detected",
"answer_structure_v11": null,
"investigation_state_snapshot": null,
"normalized": null,
"normalizer_output": {
"trace_id": "KAAw7U8orkHpRG",
"prompt_version": "normalizer_v2_0_2",
"applied": false,
"effective_message": "Какие типы документов используются чаще всего в базе?"
}
},
"error_code": null,
"error_message": null
},
{
"index": 5,
"id": "Q5",
"question": "Какие разделы учета наиболее заполнены и какие почти не используются?",
"session": null,
"session_id": "asst-2026-04-02_Address_General5_Live_Check_AfterFix_01-q5",
"status_code": 200,
"ok": true,
"elapsed_ms": 1002,
"reply_type": "partial_coverage",
"trace_id": "address-0XdEJQTykP",
"assistant_reply": "Не удалось выполнить адресный live-запрос в V1.\nПричина: live MCP вызов завершился ошибкой.\nЧто нужно уточнить: {ВнешняяОбработка.MCPToolkit.Форма.Форма.Форма(1989)}: Ошибка при вызове метода контекста (Выполнить): {(10, 24)}: Синтаксическая ошибка\nДвижения.Период <= <<?>>ТЕКУЩАЯДАТА().",
"assistant_reply_first_line": "Не удалось выполнить адресный live-запрос в V1.",
"expected_intent": "document_type_and_account_section_profile",
"actual_intent": "document_type_and_account_section_profile",
"intent_match": true,
"expected_mode": "address_query",
"actual_mode": "address_query",
"mode_match": true,
"expected_reply_type": null,
"reply_match": true,
"semantic_pass": true,
"route_pass": false,
"route_health": "blocked_execution_error",
"strict_policy": "route",
"strict_pass": false,
"selected_recipe": "address_document_type_and_account_section_profile_v1",
"missing_required_filters": [],
"match_failure_stage": "none",
"match_failure_reason": null,
"rows_fetched": 0,
"rows_matched": 0,
"mcp_call_status": "error",
"limited_reason_category": "execution_error",
"llm_decomposition_applied": false,
"llm_decomposition_reason": "not_address_like",
"fallback_rule_hit": null,
"debug_payload": {
"trace_id": "address-0XdEJQTykP",
"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": [
"management_profile_signal_detected",
"shape_not_detected",
"document_type_and_account_section_profile_signal_detected",
"{ВнешняяОбработка.MCPToolkit.Форма.Форма.Форма(1989)}: Ошибка при вызове метода контекста (Выполнить): {(10, 24)}: Синтаксическая ошибка\nДвижения.Период <= <<?>>ТЕКУЩАЯДАТА()"
],
"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": "document_type_and_account_section_profile",
"detected_intent_confidence": "high",
"extracted_filters": {
"sort": "period_desc"
},
"missing_required_filters": [],
"selected_recipe": "address_document_type_and_account_section_profile_v1",
"mcp_call_status_legacy": "error",
"account_scope_mode": "preferred",
"account_scope_fallback_applied": false,
"anchor_type": "unknown",
"anchor_value_raw": null,
"anchor_value_resolved": null,
"resolver_confidence": "low",
"ambiguity_count": 0,
"match_failure_stage": "none",
"match_failure_reason": null,
"mcp_call_status": "error",
"rows_fetched": 0,
"raw_rows_received": 0,
"rows_after_account_scope": 0,
"rows_after_recipe_filter": 0,
"rows_materialized": 0,
"rows_matched": 0,
"raw_row_keys_sample": [],
"materialization_drop_reason": "none",
"account_token_raw": null,
"account_token_normalized": null,
"account_scope_fields_checked": [
"account_dt",
"account_kt",
"registrator",
"analytics"
],
"account_scope_match_strategy": "account_code_regex_plus_alias_map_v1",
"account_scope_drop_reason": "not_applicable",
"runtime_readiness": "UNKNOWN",
"limited_reason_category": "execution_error",
"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": "address_mode_classifier_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,724 @@
{
"run_id": "2026-04-02_Address_General5_Live_Check_AfterFix_01",
"generated_at": "2026-04-02T19:27:58",
"summary": {
"run_id": "2026-04-02_Address_General5_Live_Check_AfterFix_01",
"generated_at": "2026-04-02T19:27:58",
"source_questions_file": "X:\\1C\\NDC_1C\\docs\\ADDRESS\\question_sets\\temp_general5_live_check_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": 5,
"ok_200_count": 5,
"semantic_pass_count": 5,
"semantic_pass_rate": 1.0,
"route_pass_count": 0,
"route_pass_rate": 0.0,
"strict_pass_count": 0,
"strict_pass_rate": 0.0,
"factual_count": 0,
"partial_coverage_count": 5,
"clarification_required_count": 0,
"http_error_count": 0,
"llm_decomposition_applied_count": 0,
"avg_elapsed_ms": 2632
},
"distributions": {
"reply_type": {
"partial_coverage": 5
},
"actual_intent": {
"period_coverage_profile": 3,
"document_type_and_account_section_profile": 2
},
"actual_mode": {
"address_query": 5
},
"mcp_call_status": {
"error": 5
},
"limited_reason_category": {
"execution_error": 5
},
"route_health": {
"blocked_execution_error": 5
}
}
},
"rows": [
{
"index": 1,
"id": "Q1",
"question": "За какие годы в базе есть данные?",
"session": null,
"session_id": "asst-2026-04-02_Address_General5_Live_Check_AfterFix_01-q1",
"status_code": 200,
"ok": true,
"elapsed_ms": 962,
"reply_type": "partial_coverage",
"trace_id": "address-eW6Yb7i_tq",
"assistant_reply": "Не удалось выполнить адресный live-запрос в V1.\nПричина: live MCP вызов завершился ошибкой.\nЧто нужно уточнить: {ВнешняяОбработка.MCPToolkit.Форма.Форма.Форма(1989)}: Ошибка при вызове метода контекста (Выполнить): {(10, 24)}: Синтаксическая ошибка\nДвижения.Период <= <<?>>ТЕКУЩАЯДАТА().",
"assistant_reply_first_line": "Не удалось выполнить адресный live-запрос в V1.",
"expected_intent": "period_coverage_profile",
"actual_intent": "period_coverage_profile",
"intent_match": true,
"expected_mode": "address_query",
"actual_mode": "address_query",
"mode_match": true,
"expected_reply_type": null,
"reply_match": true,
"semantic_pass": true,
"route_pass": false,
"route_health": "blocked_execution_error",
"strict_policy": "route",
"strict_pass": false,
"selected_recipe": "address_period_coverage_profile_v1",
"missing_required_filters": [],
"match_failure_stage": "none",
"match_failure_reason": null,
"rows_fetched": 0,
"rows_matched": 0,
"mcp_call_status": "error",
"limited_reason_category": "execution_error",
"llm_decomposition_applied": false,
"llm_decomposition_reason": "not_address_like",
"fallback_rule_hit": null,
"debug_payload": {
"trace_id": "address-eW6Yb7i_tq",
"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": [
"management_profile_signal_detected",
"shape_not_detected",
"period_coverage_profile_signal_detected",
"{ВнешняяОбработка.MCPToolkit.Форма.Форма.Форма(1989)}: Ошибка при вызове метода контекста (Выполнить): {(10, 24)}: Синтаксическая ошибка\nДвижения.Период <= <<?>>ТЕКУЩАЯДАТА()"
],
"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": "period_coverage_profile",
"detected_intent_confidence": "high",
"extracted_filters": {
"sort": "period_desc"
},
"missing_required_filters": [],
"selected_recipe": "address_period_coverage_profile_v1",
"mcp_call_status_legacy": "error",
"account_scope_mode": "preferred",
"account_scope_fallback_applied": false,
"anchor_type": "unknown",
"anchor_value_raw": null,
"anchor_value_resolved": null,
"resolver_confidence": "low",
"ambiguity_count": 0,
"match_failure_stage": "none",
"match_failure_reason": null,
"mcp_call_status": "error",
"rows_fetched": 0,
"raw_rows_received": 0,
"rows_after_account_scope": 0,
"rows_after_recipe_filter": 0,
"rows_materialized": 0,
"rows_matched": 0,
"raw_row_keys_sample": [],
"materialization_drop_reason": "none",
"account_token_raw": null,
"account_token_normalized": null,
"account_scope_fields_checked": [
"account_dt",
"account_kt",
"registrator",
"analytics"
],
"account_scope_match_strategy": "account_code_regex_plus_alias_map_v1",
"account_scope_drop_reason": "not_applicable",
"runtime_readiness": "UNKNOWN",
"limited_reason_category": "execution_error",
"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": "address_mode_classifier_detected",
"answer_structure_v11": null,
"investigation_state_snapshot": null,
"normalized": null,
"normalizer_output": null
},
"error_code": null,
"error_message": null
},
{
"index": 2,
"id": "Q2",
"question": "Какой год самый активный по количеству документов?",
"session": null,
"session_id": "asst-2026-04-02_Address_General5_Live_Check_AfterFix_01-q2",
"status_code": 200,
"ok": true,
"elapsed_ms": 5072,
"reply_type": "partial_coverage",
"trace_id": "address-BKVNDThPUd",
"assistant_reply": "Не удалось выполнить адресный live-запрос в V1.\nПричина: live MCP вызов завершился ошибкой.\nЧто нужно уточнить: {ВнешняяОбработка.MCPToolkit.Форма.Форма.Форма(1989)}: Ошибка при вызове метода контекста (Выполнить): {(10, 24)}: Синтаксическая ошибка\nДвижения.Период <= <<?>>ТЕКУЩАЯДАТА().",
"assistant_reply_first_line": "Не удалось выполнить адресный live-запрос в V1.",
"expected_intent": "period_coverage_profile",
"actual_intent": "period_coverage_profile",
"intent_match": true,
"expected_mode": "address_query",
"actual_mode": "address_query",
"mode_match": true,
"expected_reply_type": null,
"reply_match": true,
"semantic_pass": true,
"route_pass": false,
"route_health": "blocked_execution_error",
"strict_policy": "route",
"strict_pass": false,
"selected_recipe": "address_period_coverage_profile_v1",
"missing_required_filters": [],
"match_failure_stage": "none",
"match_failure_reason": null,
"rows_fetched": 0,
"rows_matched": 0,
"mcp_call_status": "error",
"limited_reason_category": "execution_error",
"llm_decomposition_applied": false,
"llm_decomposition_reason": "normalized_fragment_rejected_intent_conflict",
"fallback_rule_hit": null,
"debug_payload": {
"trace_id": "address-BKVNDThPUd",
"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": [
"management_profile_signal_detected",
"document_list_signal_detected",
"period_coverage_profile_signal_detected",
"{ВнешняяОбработка.MCPToolkit.Форма.Форма.Форма(1989)}: Ошибка при вызове метода контекста (Выполнить): {(10, 24)}: Синтаксическая ошибка\nДвижения.Период <= <<?>>ТЕКУЩАЯДАТА()"
],
"why_included_summary": [],
"selection_reason_summary": []
},
"dropped_intent_segments": [],
"detected_mode": "address_query",
"detected_mode_confidence": "medium",
"query_shape": "DOCUMENT_LIST",
"query_shape_confidence": "medium",
"detected_intent": "period_coverage_profile",
"detected_intent_confidence": "high",
"extracted_filters": {
"sort": "period_desc"
},
"missing_required_filters": [],
"selected_recipe": "address_period_coverage_profile_v1",
"mcp_call_status_legacy": "error",
"account_scope_mode": "preferred",
"account_scope_fallback_applied": false,
"anchor_type": "unknown",
"anchor_value_raw": null,
"anchor_value_resolved": null,
"resolver_confidence": "low",
"ambiguity_count": 0,
"match_failure_stage": "none",
"match_failure_reason": null,
"mcp_call_status": "error",
"rows_fetched": 0,
"raw_rows_received": 0,
"rows_after_account_scope": 0,
"rows_after_recipe_filter": 0,
"rows_materialized": 0,
"rows_matched": 0,
"raw_row_keys_sample": [],
"materialization_drop_reason": "none",
"account_token_raw": null,
"account_token_normalized": null,
"account_scope_fields_checked": [
"account_dt",
"account_kt",
"registrator",
"analytics"
],
"account_scope_match_strategy": "account_code_regex_plus_alias_map_v1",
"account_scope_drop_reason": "not_applicable",
"runtime_readiness": "UNKNOWN",
"limited_reason_category": "execution_error",
"response_type": "LIMITED_WITH_REASON",
"execution_lane": "address_query",
"llm_decomposition_applied": false,
"llm_decomposition_attempted": true,
"llm_provider_used": "local",
"llm_decomposition_trace_id": "bgFD0eUh97bbae",
"llm_decomposition_effective_message": "Какой год самый активный по количеству документов?",
"llm_decomposition_reason": "normalized_fragment_rejected_intent_conflict",
"fallback_rule_hit": null,
"sanitized_user_message": "какой год самый активный по количеству документов?",
"tool_gate_decision": "run_address_lane",
"tool_gate_reason": "address_mode_classifier_detected",
"answer_structure_v11": null,
"investigation_state_snapshot": null,
"normalized": null,
"normalizer_output": {
"trace_id": "bgFD0eUh97bbae",
"prompt_version": "normalizer_v2_0_2",
"applied": false,
"effective_message": "Какой год самый активный по количеству документов?"
}
},
"error_code": null,
"error_message": null
},
{
"index": 3,
"id": "Q3",
"question": "Какой месяц самый активный по количеству операций?",
"session": null,
"session_id": "asst-2026-04-02_Address_General5_Live_Check_AfterFix_01-q3",
"status_code": 200,
"ok": true,
"elapsed_ms": 1066,
"reply_type": "partial_coverage",
"trace_id": "address-lxBpVpL9YV",
"assistant_reply": "Не удалось выполнить адресный live-запрос в V1.\nПричина: live MCP вызов завершился ошибкой.\nЧто нужно уточнить: {ВнешняяОбработка.MCPToolkit.Форма.Форма.Форма(1989)}: Ошибка при вызове метода контекста (Выполнить): {(10, 24)}: Синтаксическая ошибка\nДвижения.Период <= <<?>>ТЕКУЩАЯДАТА().",
"assistant_reply_first_line": "Не удалось выполнить адресный live-запрос в V1.",
"expected_intent": "period_coverage_profile",
"actual_intent": "period_coverage_profile",
"intent_match": true,
"expected_mode": "address_query",
"actual_mode": "address_query",
"mode_match": true,
"expected_reply_type": null,
"reply_match": true,
"semantic_pass": true,
"route_pass": false,
"route_health": "blocked_execution_error",
"strict_policy": "route",
"strict_pass": false,
"selected_recipe": "address_period_coverage_profile_v1",
"missing_required_filters": [],
"match_failure_stage": "none",
"match_failure_reason": null,
"rows_fetched": 0,
"rows_matched": 0,
"mcp_call_status": "error",
"limited_reason_category": "execution_error",
"llm_decomposition_applied": false,
"llm_decomposition_reason": "not_address_like",
"fallback_rule_hit": null,
"debug_payload": {
"trace_id": "address-lxBpVpL9YV",
"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": [
"management_profile_signal_detected",
"shape_not_detected",
"period_coverage_profile_signal_detected",
"{ВнешняяОбработка.MCPToolkit.Форма.Форма.Форма(1989)}: Ошибка при вызове метода контекста (Выполнить): {(10, 24)}: Синтаксическая ошибка\nДвижения.Период <= <<?>>ТЕКУЩАЯДАТА()"
],
"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": "period_coverage_profile",
"detected_intent_confidence": "high",
"extracted_filters": {
"sort": "period_desc"
},
"missing_required_filters": [],
"selected_recipe": "address_period_coverage_profile_v1",
"mcp_call_status_legacy": "error",
"account_scope_mode": "preferred",
"account_scope_fallback_applied": false,
"anchor_type": "unknown",
"anchor_value_raw": null,
"anchor_value_resolved": null,
"resolver_confidence": "low",
"ambiguity_count": 0,
"match_failure_stage": "none",
"match_failure_reason": null,
"mcp_call_status": "error",
"rows_fetched": 0,
"raw_rows_received": 0,
"rows_after_account_scope": 0,
"rows_after_recipe_filter": 0,
"rows_materialized": 0,
"rows_matched": 0,
"raw_row_keys_sample": [],
"materialization_drop_reason": "none",
"account_token_raw": null,
"account_token_normalized": null,
"account_scope_fields_checked": [
"account_dt",
"account_kt",
"registrator",
"analytics"
],
"account_scope_match_strategy": "account_code_regex_plus_alias_map_v1",
"account_scope_drop_reason": "not_applicable",
"runtime_readiness": "UNKNOWN",
"limited_reason_category": "execution_error",
"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": "address_mode_classifier_detected",
"answer_structure_v11": null,
"investigation_state_snapshot": null,
"normalized": null,
"normalizer_output": null
},
"error_code": null,
"error_message": null
},
{
"index": 4,
"id": "Q4",
"question": "Какие типы документов используются чаще всего в базе?",
"session": null,
"session_id": "asst-2026-04-02_Address_General5_Live_Check_AfterFix_01-q4",
"status_code": 200,
"ok": true,
"elapsed_ms": 5058,
"reply_type": "partial_coverage",
"trace_id": "address-0_1nOMvz1f",
"assistant_reply": "Не удалось выполнить адресный live-запрос в V1.\nПричина: live MCP вызов завершился ошибкой.\nЧто нужно уточнить: {ВнешняяОбработка.MCPToolkit.Форма.Форма.Форма(1989)}: Ошибка при вызове метода контекста (Выполнить): {(10, 24)}: Синтаксическая ошибка\nДвижения.Период <= <<?>>ТЕКУЩАЯДАТА().",
"assistant_reply_first_line": "Не удалось выполнить адресный live-запрос в V1.",
"expected_intent": "document_type_and_account_section_profile",
"actual_intent": "document_type_and_account_section_profile",
"intent_match": true,
"expected_mode": "address_query",
"actual_mode": "address_query",
"mode_match": true,
"expected_reply_type": null,
"reply_match": true,
"semantic_pass": true,
"route_pass": false,
"route_health": "blocked_execution_error",
"strict_policy": "route",
"strict_pass": false,
"selected_recipe": "address_document_type_and_account_section_profile_v1",
"missing_required_filters": [],
"match_failure_stage": "none",
"match_failure_reason": null,
"rows_fetched": 0,
"rows_matched": 0,
"mcp_call_status": "error",
"limited_reason_category": "execution_error",
"llm_decomposition_applied": false,
"llm_decomposition_reason": "normalized_fragment_same",
"fallback_rule_hit": null,
"debug_payload": {
"trace_id": "address-0_1nOMvz1f",
"prompt_version": "address_query_runtime_v1",
"schema_version": "address_query_runtime_v1",
"fallback_type": "partial",
"route_summary": null,
"fragments": [],
"requirements_extracted": [],
"coverage_report": {
"requirements_total": 0,
"requirements_covered": 0,
"requirements_uncovered": [],
"requirements_partially_covered": [],
"clarification_needed_for": [],
"out_of_scope_requirements": []
},
"routes": [],
"retrieval_status": [],
"retrieval_results": [],
"answer_grounding_check": {
"status": "partial",
"route_subject_match": true,
"missing_requirements": [],
"reasons": [
"address_action_detected",
"address_entity_detected",
"document_list_signal_detected",
"document_type_and_account_section_profile_signal_detected",
"{ВнешняяОбработка.MCPToolkit.Форма.Форма.Форма(1989)}: Ошибка при вызове метода контекста (Выполнить): {(10, 24)}: Синтаксическая ошибка\nДвижения.Период <= <<?>>ТЕКУЩАЯДАТА()"
],
"why_included_summary": [],
"selection_reason_summary": []
},
"dropped_intent_segments": [],
"detected_mode": "address_query",
"detected_mode_confidence": "high",
"query_shape": "DOCUMENT_LIST",
"query_shape_confidence": "medium",
"detected_intent": "document_type_and_account_section_profile",
"detected_intent_confidence": "high",
"extracted_filters": {
"sort": "period_desc"
},
"missing_required_filters": [],
"selected_recipe": "address_document_type_and_account_section_profile_v1",
"mcp_call_status_legacy": "error",
"account_scope_mode": "preferred",
"account_scope_fallback_applied": false,
"anchor_type": "unknown",
"anchor_value_raw": null,
"anchor_value_resolved": null,
"resolver_confidence": "low",
"ambiguity_count": 0,
"match_failure_stage": "none",
"match_failure_reason": null,
"mcp_call_status": "error",
"rows_fetched": 0,
"raw_rows_received": 0,
"rows_after_account_scope": 0,
"rows_after_recipe_filter": 0,
"rows_materialized": 0,
"rows_matched": 0,
"raw_row_keys_sample": [],
"materialization_drop_reason": "none",
"account_token_raw": null,
"account_token_normalized": null,
"account_scope_fields_checked": [
"account_dt",
"account_kt",
"registrator",
"analytics"
],
"account_scope_match_strategy": "account_code_regex_plus_alias_map_v1",
"account_scope_drop_reason": "not_applicable",
"runtime_readiness": "UNKNOWN",
"limited_reason_category": "execution_error",
"response_type": "LIMITED_WITH_REASON",
"execution_lane": "address_query",
"llm_decomposition_applied": false,
"llm_decomposition_attempted": true,
"llm_provider_used": "local",
"llm_decomposition_trace_id": "KAAw7U8orkHpRG",
"llm_decomposition_effective_message": "Какие типы документов используются чаще всего в базе?",
"llm_decomposition_reason": "normalized_fragment_same",
"fallback_rule_hit": null,
"sanitized_user_message": "какие типы документов используются чаще всего в базе?",
"tool_gate_decision": "run_address_lane",
"tool_gate_reason": "address_mode_classifier_detected",
"answer_structure_v11": null,
"investigation_state_snapshot": null,
"normalized": null,
"normalizer_output": {
"trace_id": "KAAw7U8orkHpRG",
"prompt_version": "normalizer_v2_0_2",
"applied": false,
"effective_message": "Какие типы документов используются чаще всего в базе?"
}
},
"error_code": null,
"error_message": null
},
{
"index": 5,
"id": "Q5",
"question": "Какие разделы учета наиболее заполнены и какие почти не используются?",
"session": null,
"session_id": "asst-2026-04-02_Address_General5_Live_Check_AfterFix_01-q5",
"status_code": 200,
"ok": true,
"elapsed_ms": 1002,
"reply_type": "partial_coverage",
"trace_id": "address-0XdEJQTykP",
"assistant_reply": "Не удалось выполнить адресный live-запрос в V1.\nПричина: live MCP вызов завершился ошибкой.\nЧто нужно уточнить: {ВнешняяОбработка.MCPToolkit.Форма.Форма.Форма(1989)}: Ошибка при вызове метода контекста (Выполнить): {(10, 24)}: Синтаксическая ошибка\nДвижения.Период <= <<?>>ТЕКУЩАЯДАТА().",
"assistant_reply_first_line": "Не удалось выполнить адресный live-запрос в V1.",
"expected_intent": "document_type_and_account_section_profile",
"actual_intent": "document_type_and_account_section_profile",
"intent_match": true,
"expected_mode": "address_query",
"actual_mode": "address_query",
"mode_match": true,
"expected_reply_type": null,
"reply_match": true,
"semantic_pass": true,
"route_pass": false,
"route_health": "blocked_execution_error",
"strict_policy": "route",
"strict_pass": false,
"selected_recipe": "address_document_type_and_account_section_profile_v1",
"missing_required_filters": [],
"match_failure_stage": "none",
"match_failure_reason": null,
"rows_fetched": 0,
"rows_matched": 0,
"mcp_call_status": "error",
"limited_reason_category": "execution_error",
"llm_decomposition_applied": false,
"llm_decomposition_reason": "not_address_like",
"fallback_rule_hit": null,
"debug_payload": {
"trace_id": "address-0XdEJQTykP",
"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": [
"management_profile_signal_detected",
"shape_not_detected",
"document_type_and_account_section_profile_signal_detected",
"{ВнешняяОбработка.MCPToolkit.Форма.Форма.Форма(1989)}: Ошибка при вызове метода контекста (Выполнить): {(10, 24)}: Синтаксическая ошибка\nДвижения.Период <= <<?>>ТЕКУЩАЯДАТА()"
],
"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": "document_type_and_account_section_profile",
"detected_intent_confidence": "high",
"extracted_filters": {
"sort": "period_desc"
},
"missing_required_filters": [],
"selected_recipe": "address_document_type_and_account_section_profile_v1",
"mcp_call_status_legacy": "error",
"account_scope_mode": "preferred",
"account_scope_fallback_applied": false,
"anchor_type": "unknown",
"anchor_value_raw": null,
"anchor_value_resolved": null,
"resolver_confidence": "low",
"ambiguity_count": 0,
"match_failure_stage": "none",
"match_failure_reason": null,
"mcp_call_status": "error",
"rows_fetched": 0,
"raw_rows_received": 0,
"rows_after_account_scope": 0,
"rows_after_recipe_filter": 0,
"rows_materialized": 0,
"rows_matched": 0,
"raw_row_keys_sample": [],
"materialization_drop_reason": "none",
"account_token_raw": null,
"account_token_normalized": null,
"account_scope_fields_checked": [
"account_dt",
"account_kt",
"registrator",
"analytics"
],
"account_scope_match_strategy": "account_code_regex_plus_alias_map_v1",
"account_scope_drop_reason": "not_applicable",
"runtime_readiness": "UNKNOWN",
"limited_reason_category": "execution_error",
"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": "address_mode_classifier_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,9 @@
# Response Audit: 2026-04-02_Address_General5_Live_Check_AfterFix_01
| id | strict | route_health | reply_type | intent | limited_reason | question | assistant_first_line |
|---|---|---|---|---|---|---|---|
| Q1 | False | blocked_execution_error | partial_coverage | period_coverage_profile | execution_error | За какие годы в базе есть данные? | Не удалось выполнить адресный live-запрос в V1. |
| Q2 | False | blocked_execution_error | partial_coverage | period_coverage_profile | execution_error | Какой год самый активный по количеству документов? | Не удалось выполнить адресный live-запрос в V1. |
| Q3 | False | blocked_execution_error | partial_coverage | period_coverage_profile | execution_error | Какой месяц самый активный по количеству операций? | Не удалось выполнить адресный live-запрос в V1. |
| Q4 | False | blocked_execution_error | partial_coverage | document_type_and_account_section_profile | execution_error | Какие типы документов используются чаще всего в базе? | Не удалось выполнить адресный live-запрос в V1. |
| Q5 | False | blocked_execution_error | partial_coverage | document_type_and_account_section_profile | execution_error | Какие разделы учета наиболее заполнены и какие почти не используются? | Не удалось выполнить адресный live-запрос в V1. |

View File

@ -0,0 +1,47 @@
{
"run_id": "2026-04-02_Address_General5_Live_Check_AfterFix_01",
"generated_at": "2026-04-02T19:27:58",
"source_questions_file": "X:\\1C\\NDC_1C\\docs\\ADDRESS\\question_sets\\temp_general5_live_check_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": 5,
"ok_200_count": 5,
"semantic_pass_count": 5,
"semantic_pass_rate": 1.0,
"route_pass_count": 0,
"route_pass_rate": 0.0,
"strict_pass_count": 0,
"strict_pass_rate": 0.0,
"factual_count": 0,
"partial_coverage_count": 5,
"clarification_required_count": 0,
"http_error_count": 0,
"llm_decomposition_applied_count": 0,
"avg_elapsed_ms": 2632
},
"distributions": {
"reply_type": {
"partial_coverage": 5
},
"actual_intent": {
"period_coverage_profile": 3,
"document_type_and_account_section_profile": 2
},
"actual_mode": {
"address_query": 5
},
"mcp_call_status": {
"error": 5
},
"limited_reason_category": {
"execution_error": 5
},
"route_health": {
"blocked_execution_error": 5
}
}
}

View File

@ -0,0 +1,28 @@
# 2026-04-02_Address_General5_Live_Check_AfterFix_02
Generated at: 2026-04-02T19:29:40
Questions file: X:\1C\NDC_1C\docs\ADDRESS\question_sets\temp_general5_live_check_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: 5
- ok_200_count: 5
- semantic_pass_count: 5
- semantic_pass_rate: 1.0
- route_pass_count: 5
- route_pass_rate: 1.0
- strict_pass_count: 5
- strict_pass_rate: 1.0
- factual_count: 5
- partial_coverage_count: 0
- clarification_required_count: 0
- http_error_count: 0
- llm_decomposition_applied_count: 0
- avg_elapsed_ms: 3100.6
## Files
- run_summary.json
- full_live_results.json
- failures_only.json

View File

@ -0,0 +1,769 @@
{
"run_id": "2026-04-02_Address_General5_Live_Check_AfterFix_02",
"generated_at": "2026-04-02T19:29:40",
"summary": {
"run_id": "2026-04-02_Address_General5_Live_Check_AfterFix_02",
"generated_at": "2026-04-02T19:29:40",
"source_questions_file": "X:\\1C\\NDC_1C\\docs\\ADDRESS\\question_sets\\temp_general5_live_check_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": 5,
"ok_200_count": 5,
"semantic_pass_count": 5,
"semantic_pass_rate": 1.0,
"route_pass_count": 5,
"route_pass_rate": 1.0,
"strict_pass_count": 5,
"strict_pass_rate": 1.0,
"factual_count": 5,
"partial_coverage_count": 0,
"clarification_required_count": 0,
"http_error_count": 0,
"llm_decomposition_applied_count": 0,
"avg_elapsed_ms": 3100.6
},
"distributions": {
"reply_type": {
"factual": 5
},
"actual_intent": {
"period_coverage_profile": 3,
"document_type_and_account_section_profile": 2
},
"actual_mode": {
"address_query": 5
},
"mcp_call_status": {
"matched_non_empty": 5
},
"limited_reason_category": {},
"route_health": {
"ok_or_factual": 5
}
}
},
"rows": [
{
"index": 1,
"id": "Q1",
"question": "За какие годы в базе есть данные?",
"session": null,
"session_id": "asst-2026-04-02_Address_General5_Live_Check_AfterFix_02-q1",
"status_code": 200,
"ok": true,
"elapsed_ms": 1185,
"reply_type": "factual",
"trace_id": "address-HfTGzxvrUv",
"assistant_reply": "Профиль периодов базы собран (movement-based aggregate).\nСтрок агрегата: 134.\nПокрытие по датам: 2014-05-27T12:00:00Z.. 2026-03-31T00:00:00Z.\nГоды с данными: 2014..2026 (уникальных: 12).\nСамый активный год по документам: 2019 (1004).\nСамый активный месяц по операциям: 2015-02 (1249).\nТоп годов по документам:\n1. 2019: 1004\n2. 2018: 703\n3. 2015: 671\n4. 2016: 577\n5. 2020: 536\nТоп месяцев по операциям:\n1. 2015-02: 1249\n2. 2015-01: 924\n3. 2018-08: 854\n4. 2019-05: 536\n5. 2017-12: 503",
"assistant_reply_first_line": "Профиль периодов базы собран (movement-based aggregate).",
"expected_intent": "period_coverage_profile",
"actual_intent": "period_coverage_profile",
"intent_match": true,
"expected_mode": "address_query",
"actual_mode": "address_query",
"mode_match": true,
"expected_reply_type": null,
"reply_match": true,
"semantic_pass": true,
"route_pass": true,
"route_health": "ok_or_factual",
"strict_policy": "route",
"strict_pass": true,
"selected_recipe": "address_period_coverage_profile_v1",
"missing_required_filters": [],
"match_failure_stage": "none",
"match_failure_reason": null,
"rows_fetched": 134,
"rows_matched": 134,
"mcp_call_status": "matched_non_empty",
"limited_reason_category": null,
"llm_decomposition_applied": false,
"llm_decomposition_reason": "not_address_like",
"fallback_rule_hit": null,
"debug_payload": {
"trace_id": "address-HfTGzxvrUv",
"prompt_version": "address_query_runtime_v1",
"schema_version": "address_query_runtime_v1",
"fallback_type": "none",
"route_summary": null,
"fragments": [],
"requirements_extracted": [],
"coverage_report": {
"requirements_total": 0,
"requirements_covered": 0,
"requirements_uncovered": [],
"requirements_partially_covered": [],
"clarification_needed_for": [],
"out_of_scope_requirements": []
},
"routes": [],
"retrieval_status": [],
"retrieval_results": [],
"answer_grounding_check": {
"status": "grounded",
"route_subject_match": true,
"missing_requirements": [],
"reasons": [
"management_profile_signal_detected",
"shape_not_detected",
"period_coverage_profile_signal_detected"
],
"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": "period_coverage_profile",
"detected_intent_confidence": "high",
"extracted_filters": {
"sort": "period_desc",
"period_to": "2026-04-02"
},
"missing_required_filters": [],
"selected_recipe": "address_period_coverage_profile_v1",
"mcp_call_status_legacy": "matched_non_empty",
"account_scope_mode": "preferred",
"account_scope_fallback_applied": false,
"anchor_type": "unknown",
"anchor_value_raw": null,
"anchor_value_resolved": null,
"resolver_confidence": "low",
"ambiguity_count": 0,
"match_failure_stage": "none",
"match_failure_reason": null,
"mcp_call_status": "matched_non_empty",
"rows_fetched": 134,
"raw_rows_received": 134,
"rows_after_account_scope": 134,
"rows_after_recipe_filter": 134,
"rows_materialized": 134,
"rows_matched": 134,
"raw_row_keys_sample": [
"Период",
"Регистратор",
"СчетДт",
"СчетКт",
"Сумма",
"Period",
"Registrator",
"Amount"
],
"materialization_drop_reason": "none",
"account_token_raw": null,
"account_token_normalized": null,
"account_scope_fields_checked": [
"account_dt",
"account_kt",
"registrator",
"analytics"
],
"account_scope_match_strategy": "account_code_regex_plus_alias_map_v1",
"account_scope_drop_reason": "not_applicable",
"runtime_readiness": "LIVE_QUERYABLE_WITH_LIMITS",
"limited_reason_category": null,
"response_type": "FACTUAL_SUMMARY",
"execution_lane": "address_query",
"llm_decomposition_applied": false,
"llm_decomposition_attempted": false,
"llm_provider_used": "local",
"llm_decomposition_trace_id": null,
"llm_decomposition_effective_message": "За какие годы в базе есть данные?",
"llm_decomposition_reason": "not_address_like",
"fallback_rule_hit": null,
"sanitized_user_message": "за какие годы в базе есть данные?",
"tool_gate_decision": "run_address_lane",
"tool_gate_reason": "address_mode_classifier_detected",
"answer_structure_v11": null,
"investigation_state_snapshot": null,
"normalized": null,
"normalizer_output": null
},
"error_code": null,
"error_message": null
},
{
"index": 2,
"id": "Q2",
"question": "Какой год самый активный по количеству документов?",
"session": null,
"session_id": "asst-2026-04-02_Address_General5_Live_Check_AfterFix_02-q2",
"status_code": 200,
"ok": true,
"elapsed_ms": 6159,
"reply_type": "factual",
"trace_id": "address-AL_CR3C1wQ",
"assistant_reply": "Профиль периодов базы собран (movement-based aggregate).\nСтрок агрегата: 134.\nПокрытие по датам: 2014-05-27T12:00:00Z.. 2026-03-31T00:00:00Z.\nГоды с данными: 2014..2026 (уникальных: 12).\nСамый активный год по документам: 2019 (1004).\nСамый активный месяц по операциям: 2015-02 (1249).\nТоп годов по документам:\n1. 2019: 1004\n2. 2018: 703\n3. 2015: 671\n4. 2016: 577\n5. 2020: 536\nТоп месяцев по операциям:\n1. 2015-02: 1249\n2. 2015-01: 924\n3. 2018-08: 854\n4. 2019-05: 536\n5. 2017-12: 503",
"assistant_reply_first_line": "Профиль периодов базы собран (movement-based aggregate).",
"expected_intent": "period_coverage_profile",
"actual_intent": "period_coverage_profile",
"intent_match": true,
"expected_mode": "address_query",
"actual_mode": "address_query",
"mode_match": true,
"expected_reply_type": null,
"reply_match": true,
"semantic_pass": true,
"route_pass": true,
"route_health": "ok_or_factual",
"strict_policy": "route",
"strict_pass": true,
"selected_recipe": "address_period_coverage_profile_v1",
"missing_required_filters": [],
"match_failure_stage": "none",
"match_failure_reason": null,
"rows_fetched": 134,
"rows_matched": 134,
"mcp_call_status": "matched_non_empty",
"limited_reason_category": null,
"llm_decomposition_applied": false,
"llm_decomposition_reason": "normalized_fragment_rejected_intent_conflict",
"fallback_rule_hit": null,
"debug_payload": {
"trace_id": "address-AL_CR3C1wQ",
"prompt_version": "address_query_runtime_v1",
"schema_version": "address_query_runtime_v1",
"fallback_type": "none",
"route_summary": null,
"fragments": [],
"requirements_extracted": [],
"coverage_report": {
"requirements_total": 0,
"requirements_covered": 0,
"requirements_uncovered": [],
"requirements_partially_covered": [],
"clarification_needed_for": [],
"out_of_scope_requirements": []
},
"routes": [],
"retrieval_status": [],
"retrieval_results": [],
"answer_grounding_check": {
"status": "grounded",
"route_subject_match": true,
"missing_requirements": [],
"reasons": [
"management_profile_signal_detected",
"document_list_signal_detected",
"period_coverage_profile_signal_detected"
],
"why_included_summary": [],
"selection_reason_summary": []
},
"dropped_intent_segments": [],
"detected_mode": "address_query",
"detected_mode_confidence": "medium",
"query_shape": "DOCUMENT_LIST",
"query_shape_confidence": "medium",
"detected_intent": "period_coverage_profile",
"detected_intent_confidence": "high",
"extracted_filters": {
"sort": "period_desc",
"period_to": "2026-04-02"
},
"missing_required_filters": [],
"selected_recipe": "address_period_coverage_profile_v1",
"mcp_call_status_legacy": "matched_non_empty",
"account_scope_mode": "preferred",
"account_scope_fallback_applied": false,
"anchor_type": "unknown",
"anchor_value_raw": null,
"anchor_value_resolved": null,
"resolver_confidence": "low",
"ambiguity_count": 0,
"match_failure_stage": "none",
"match_failure_reason": null,
"mcp_call_status": "matched_non_empty",
"rows_fetched": 134,
"raw_rows_received": 134,
"rows_after_account_scope": 134,
"rows_after_recipe_filter": 134,
"rows_materialized": 134,
"rows_matched": 134,
"raw_row_keys_sample": [
"Период",
"Регистратор",
"СчетДт",
"СчетКт",
"Сумма",
"Period",
"Registrator",
"Amount"
],
"materialization_drop_reason": "none",
"account_token_raw": null,
"account_token_normalized": null,
"account_scope_fields_checked": [
"account_dt",
"account_kt",
"registrator",
"analytics"
],
"account_scope_match_strategy": "account_code_regex_plus_alias_map_v1",
"account_scope_drop_reason": "not_applicable",
"runtime_readiness": "LIVE_QUERYABLE_WITH_LIMITS",
"limited_reason_category": null,
"response_type": "FACTUAL_SUMMARY",
"execution_lane": "address_query",
"llm_decomposition_applied": false,
"llm_decomposition_attempted": true,
"llm_provider_used": "local",
"llm_decomposition_trace_id": "rAUqIM9N9BsIJV",
"llm_decomposition_effective_message": "Какой год самый активный по количеству документов?",
"llm_decomposition_reason": "normalized_fragment_rejected_intent_conflict",
"fallback_rule_hit": null,
"sanitized_user_message": "какой год самый активный по количеству документов?",
"tool_gate_decision": "run_address_lane",
"tool_gate_reason": "address_mode_classifier_detected",
"answer_structure_v11": null,
"investigation_state_snapshot": null,
"normalized": null,
"normalizer_output": {
"trace_id": "rAUqIM9N9BsIJV",
"prompt_version": "normalizer_v2_0_2",
"applied": false,
"effective_message": "Какой год самый активный по количеству документов?"
}
},
"error_code": null,
"error_message": null
},
{
"index": 3,
"id": "Q3",
"question": "Какой месяц самый активный по количеству операций?",
"session": null,
"session_id": "asst-2026-04-02_Address_General5_Live_Check_AfterFix_02-q3",
"status_code": 200,
"ok": true,
"elapsed_ms": 980,
"reply_type": "factual",
"trace_id": "address-s1bNIMxNTL",
"assistant_reply": "Профиль периодов базы собран (movement-based aggregate).\nСтрок агрегата: 134.\nПокрытие по датам: 2014-05-27T12:00:00Z.. 2026-03-31T00:00:00Z.\nГоды с данными: 2014..2026 (уникальных: 12).\nСамый активный год по документам: 2019 (1004).\nСамый активный месяц по операциям: 2015-02 (1249).\nТоп годов по документам:\n1. 2019: 1004\n2. 2018: 703\n3. 2015: 671\n4. 2016: 577\n5. 2020: 536\nТоп месяцев по операциям:\n1. 2015-02: 1249\n2. 2015-01: 924\n3. 2018-08: 854\n4. 2019-05: 536\n5. 2017-12: 503",
"assistant_reply_first_line": "Профиль периодов базы собран (movement-based aggregate).",
"expected_intent": "period_coverage_profile",
"actual_intent": "period_coverage_profile",
"intent_match": true,
"expected_mode": "address_query",
"actual_mode": "address_query",
"mode_match": true,
"expected_reply_type": null,
"reply_match": true,
"semantic_pass": true,
"route_pass": true,
"route_health": "ok_or_factual",
"strict_policy": "route",
"strict_pass": true,
"selected_recipe": "address_period_coverage_profile_v1",
"missing_required_filters": [],
"match_failure_stage": "none",
"match_failure_reason": null,
"rows_fetched": 134,
"rows_matched": 134,
"mcp_call_status": "matched_non_empty",
"limited_reason_category": null,
"llm_decomposition_applied": false,
"llm_decomposition_reason": "not_address_like",
"fallback_rule_hit": null,
"debug_payload": {
"trace_id": "address-s1bNIMxNTL",
"prompt_version": "address_query_runtime_v1",
"schema_version": "address_query_runtime_v1",
"fallback_type": "none",
"route_summary": null,
"fragments": [],
"requirements_extracted": [],
"coverage_report": {
"requirements_total": 0,
"requirements_covered": 0,
"requirements_uncovered": [],
"requirements_partially_covered": [],
"clarification_needed_for": [],
"out_of_scope_requirements": []
},
"routes": [],
"retrieval_status": [],
"retrieval_results": [],
"answer_grounding_check": {
"status": "grounded",
"route_subject_match": true,
"missing_requirements": [],
"reasons": [
"management_profile_signal_detected",
"shape_not_detected",
"period_coverage_profile_signal_detected"
],
"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": "period_coverage_profile",
"detected_intent_confidence": "high",
"extracted_filters": {
"sort": "period_desc",
"period_to": "2026-04-02"
},
"missing_required_filters": [],
"selected_recipe": "address_period_coverage_profile_v1",
"mcp_call_status_legacy": "matched_non_empty",
"account_scope_mode": "preferred",
"account_scope_fallback_applied": false,
"anchor_type": "unknown",
"anchor_value_raw": null,
"anchor_value_resolved": null,
"resolver_confidence": "low",
"ambiguity_count": 0,
"match_failure_stage": "none",
"match_failure_reason": null,
"mcp_call_status": "matched_non_empty",
"rows_fetched": 134,
"raw_rows_received": 134,
"rows_after_account_scope": 134,
"rows_after_recipe_filter": 134,
"rows_materialized": 134,
"rows_matched": 134,
"raw_row_keys_sample": [
"Период",
"Регистратор",
"СчетДт",
"СчетКт",
"Сумма",
"Period",
"Registrator",
"Amount"
],
"materialization_drop_reason": "none",
"account_token_raw": null,
"account_token_normalized": null,
"account_scope_fields_checked": [
"account_dt",
"account_kt",
"registrator",
"analytics"
],
"account_scope_match_strategy": "account_code_regex_plus_alias_map_v1",
"account_scope_drop_reason": "not_applicable",
"runtime_readiness": "LIVE_QUERYABLE_WITH_LIMITS",
"limited_reason_category": null,
"response_type": "FACTUAL_SUMMARY",
"execution_lane": "address_query",
"llm_decomposition_applied": false,
"llm_decomposition_attempted": false,
"llm_provider_used": "local",
"llm_decomposition_trace_id": null,
"llm_decomposition_effective_message": "Какой месяц самый активный по количеству операций?",
"llm_decomposition_reason": "not_address_like",
"fallback_rule_hit": null,
"sanitized_user_message": "какой месяц самый активный по количеству операций?",
"tool_gate_decision": "run_address_lane",
"tool_gate_reason": "address_mode_classifier_detected",
"answer_structure_v11": null,
"investigation_state_snapshot": null,
"normalized": null,
"normalizer_output": null
},
"error_code": null,
"error_message": null
},
{
"index": 4,
"id": "Q4",
"question": "Какие типы документов используются чаще всего в базе?",
"session": null,
"session_id": "asst-2026-04-02_Address_General5_Live_Check_AfterFix_02-q4",
"status_code": 200,
"ok": true,
"elapsed_ms": 6282,
"reply_type": "factual",
"trace_id": "address-UVGdY-3_VN",
"assistant_reply": "Профиль типов документов и разделов учета собран (movement-based aggregate).\nСтрок агрегата: 147.\nТоп типов документов (по числу уникальных регистраторов):\n1. Списание с расчетного счета: 2352 (52.6%)\n2. Поступление товаров и услуг: 486 (10.9%)\n3. Регламентная операция: 414 (9.3%)\n4. Поступление на расчетный счет: 323 (7.2%)\n5. Счет-фактура полученный: 261 (5.8%)\n6. Операция (бухгалтерский и налоговый учет): 147 (3.3%)\n7. Реализация товаров и услуг: 123 (2.8%)\n8. Отражение зарплаты в регламентированном учете: 87 (1.9%)\n9. Приходный кассовый ордер: 76 (1.7%)\n10. Расходный кассовый ордер: 73 (1.6%)\nНаиболее заполненные разделы учета (по операциям Дт+Кт):\n1. 90 (Продажи): 2973 (12.1%)\n2. 51 (Расчетные счета): 2967 (12.1%)\n3. 60 (Расчеты с поставщиками и подрядчиками): 2793 (11.4%)\n4. 44 (Расходы на продажу): 2422 (9.9%)\n5. 68 (Расчеты по налогам и сборам): 1553 (6.3%)\n6. 10 (Материалы): 1494 (6.1%)\n7. 19 (НДС по приобретенным ценностям): 1489 (6.1%)\n8. 91 (Прочие доходы и расходы): 1324 (5.4%)\n9. 41 (Товары): 1312 (5.3%)\n10. 76 (Расчеты с разными дебиторами и кредиторами): 1240 (5.0%)\nРазделы с минимальной активностью (среди использованных):\n1. 58 (Финансовые вложения): 2\n2. 81 (Собственные акции (доли)): 2\n3. 80 (Уставный капитал): 5\n4. 03: 6\n5. 04 (Нематериальные активы): 6\n6. 75 (Расчеты с учредителями): 16\n7. 55 (Специальные счета в банках): 18\n8. 84 (Нераспределенная прибыль (непокрытый убыток)): 20\n9. 26 (Общехозяйственные расходы): 51\n10. 71 (Расчеты с подотчетными лицами): 76",
"assistant_reply_first_line": "Профиль типов документов и разделов учета собран (movement-based aggregate).",
"expected_intent": "document_type_and_account_section_profile",
"actual_intent": "document_type_and_account_section_profile",
"intent_match": true,
"expected_mode": "address_query",
"actual_mode": "address_query",
"mode_match": true,
"expected_reply_type": null,
"reply_match": true,
"semantic_pass": true,
"route_pass": true,
"route_health": "ok_or_factual",
"strict_policy": "route",
"strict_pass": true,
"selected_recipe": "address_document_type_and_account_section_profile_v1",
"missing_required_filters": [],
"match_failure_stage": "none",
"match_failure_reason": null,
"rows_fetched": 147,
"rows_matched": 147,
"mcp_call_status": "matched_non_empty",
"limited_reason_category": null,
"llm_decomposition_applied": false,
"llm_decomposition_reason": "normalized_fragment_same",
"fallback_rule_hit": null,
"debug_payload": {
"trace_id": "address-UVGdY-3_VN",
"prompt_version": "address_query_runtime_v1",
"schema_version": "address_query_runtime_v1",
"fallback_type": "none",
"route_summary": null,
"fragments": [],
"requirements_extracted": [],
"coverage_report": {
"requirements_total": 0,
"requirements_covered": 0,
"requirements_uncovered": [],
"requirements_partially_covered": [],
"clarification_needed_for": [],
"out_of_scope_requirements": []
},
"routes": [],
"retrieval_status": [],
"retrieval_results": [],
"answer_grounding_check": {
"status": "grounded",
"route_subject_match": true,
"missing_requirements": [],
"reasons": [
"address_action_detected",
"address_entity_detected",
"document_list_signal_detected",
"document_type_and_account_section_profile_signal_detected"
],
"why_included_summary": [],
"selection_reason_summary": []
},
"dropped_intent_segments": [],
"detected_mode": "address_query",
"detected_mode_confidence": "high",
"query_shape": "DOCUMENT_LIST",
"query_shape_confidence": "medium",
"detected_intent": "document_type_and_account_section_profile",
"detected_intent_confidence": "high",
"extracted_filters": {
"sort": "period_desc",
"period_to": "2026-04-02"
},
"missing_required_filters": [],
"selected_recipe": "address_document_type_and_account_section_profile_v1",
"mcp_call_status_legacy": "matched_non_empty",
"account_scope_mode": "preferred",
"account_scope_fallback_applied": false,
"anchor_type": "unknown",
"anchor_value_raw": null,
"anchor_value_resolved": null,
"resolver_confidence": "low",
"ambiguity_count": 0,
"match_failure_stage": "none",
"match_failure_reason": null,
"mcp_call_status": "matched_non_empty",
"rows_fetched": 147,
"raw_rows_received": 147,
"rows_after_account_scope": 147,
"rows_after_recipe_filter": 147,
"rows_materialized": 147,
"rows_matched": 147,
"raw_row_keys_sample": [
"Период",
"Регистратор",
"СчетДт",
"СчетКт",
"Сумма",
"Period",
"Registrator",
"AccountDt",
"Amount"
],
"materialization_drop_reason": "none",
"account_token_raw": null,
"account_token_normalized": null,
"account_scope_fields_checked": [
"account_dt",
"account_kt",
"registrator",
"analytics"
],
"account_scope_match_strategy": "account_code_regex_plus_alias_map_v1",
"account_scope_drop_reason": "not_applicable",
"runtime_readiness": "LIVE_QUERYABLE_WITH_LIMITS",
"limited_reason_category": null,
"response_type": "FACTUAL_SUMMARY",
"execution_lane": "address_query",
"llm_decomposition_applied": false,
"llm_decomposition_attempted": true,
"llm_provider_used": "local",
"llm_decomposition_trace_id": "jQJYufBVkLJJHx",
"llm_decomposition_effective_message": "Какие типы документов используются чаще всего в базе?",
"llm_decomposition_reason": "normalized_fragment_same",
"fallback_rule_hit": null,
"sanitized_user_message": "какие типы документов используются чаще всего в базе?",
"tool_gate_decision": "run_address_lane",
"tool_gate_reason": "address_mode_classifier_detected",
"answer_structure_v11": null,
"investigation_state_snapshot": null,
"normalized": null,
"normalizer_output": {
"trace_id": "jQJYufBVkLJJHx",
"prompt_version": "normalizer_v2_0_2",
"applied": false,
"effective_message": "Какие типы документов используются чаще всего в базе?"
}
},
"error_code": null,
"error_message": null
},
{
"index": 5,
"id": "Q5",
"question": "Какие разделы учета наиболее заполнены и какие почти не используются?",
"session": null,
"session_id": "asst-2026-04-02_Address_General5_Live_Check_AfterFix_02-q5",
"status_code": 200,
"ok": true,
"elapsed_ms": 897,
"reply_type": "factual",
"trace_id": "address--3Oc-f_Szc",
"assistant_reply": "Профиль типов документов и разделов учета собран (movement-based aggregate).\nСтрок агрегата: 147.\nТоп типов документов (по числу уникальных регистраторов):\n1. Списание с расчетного счета: 2352 (52.6%)\n2. Поступление товаров и услуг: 486 (10.9%)\n3. Регламентная операция: 414 (9.3%)\n4. Поступление на расчетный счет: 323 (7.2%)\n5. Счет-фактура полученный: 261 (5.8%)\n6. Операция (бухгалтерский и налоговый учет): 147 (3.3%)\n7. Реализация товаров и услуг: 123 (2.8%)\n8. Отражение зарплаты в регламентированном учете: 87 (1.9%)\n9. Приходный кассовый ордер: 76 (1.7%)\n10. Расходный кассовый ордер: 73 (1.6%)\nНаиболее заполненные разделы учета (по операциям Дт+Кт):\n1. 90 (Продажи): 2973 (12.1%)\n2. 51 (Расчетные счета): 2967 (12.1%)\n3. 60 (Расчеты с поставщиками и подрядчиками): 2793 (11.4%)\n4. 44 (Расходы на продажу): 2422 (9.9%)\n5. 68 (Расчеты по налогам и сборам): 1553 (6.3%)\n6. 10 (Материалы): 1494 (6.1%)\n7. 19 (НДС по приобретенным ценностям): 1489 (6.1%)\n8. 91 (Прочие доходы и расходы): 1324 (5.4%)\n9. 41 (Товары): 1312 (5.3%)\n10. 76 (Расчеты с разными дебиторами и кредиторами): 1240 (5.0%)\nРазделы с минимальной активностью (среди использованных):\n1. 58 (Финансовые вложения): 2\n2. 81 (Собственные акции (доли)): 2\n3. 80 (Уставный капитал): 5\n4. 03: 6\n5. 04 (Нематериальные активы): 6\n6. 75 (Расчеты с учредителями): 16\n7. 55 (Специальные счета в банках): 18\n8. 84 (Нераспределенная прибыль (непокрытый убыток)): 20\n9. 26 (Общехозяйственные расходы): 51\n10. 71 (Расчеты с подотчетными лицами): 76",
"assistant_reply_first_line": "Профиль типов документов и разделов учета собран (movement-based aggregate).",
"expected_intent": "document_type_and_account_section_profile",
"actual_intent": "document_type_and_account_section_profile",
"intent_match": true,
"expected_mode": "address_query",
"actual_mode": "address_query",
"mode_match": true,
"expected_reply_type": null,
"reply_match": true,
"semantic_pass": true,
"route_pass": true,
"route_health": "ok_or_factual",
"strict_policy": "route",
"strict_pass": true,
"selected_recipe": "address_document_type_and_account_section_profile_v1",
"missing_required_filters": [],
"match_failure_stage": "none",
"match_failure_reason": null,
"rows_fetched": 147,
"rows_matched": 147,
"mcp_call_status": "matched_non_empty",
"limited_reason_category": null,
"llm_decomposition_applied": false,
"llm_decomposition_reason": "not_address_like",
"fallback_rule_hit": null,
"debug_payload": {
"trace_id": "address--3Oc-f_Szc",
"prompt_version": "address_query_runtime_v1",
"schema_version": "address_query_runtime_v1",
"fallback_type": "none",
"route_summary": null,
"fragments": [],
"requirements_extracted": [],
"coverage_report": {
"requirements_total": 0,
"requirements_covered": 0,
"requirements_uncovered": [],
"requirements_partially_covered": [],
"clarification_needed_for": [],
"out_of_scope_requirements": []
},
"routes": [],
"retrieval_status": [],
"retrieval_results": [],
"answer_grounding_check": {
"status": "grounded",
"route_subject_match": true,
"missing_requirements": [],
"reasons": [
"management_profile_signal_detected",
"shape_not_detected",
"document_type_and_account_section_profile_signal_detected"
],
"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": "document_type_and_account_section_profile",
"detected_intent_confidence": "high",
"extracted_filters": {
"sort": "period_desc",
"period_to": "2026-04-02"
},
"missing_required_filters": [],
"selected_recipe": "address_document_type_and_account_section_profile_v1",
"mcp_call_status_legacy": "matched_non_empty",
"account_scope_mode": "preferred",
"account_scope_fallback_applied": false,
"anchor_type": "unknown",
"anchor_value_raw": null,
"anchor_value_resolved": null,
"resolver_confidence": "low",
"ambiguity_count": 0,
"match_failure_stage": "none",
"match_failure_reason": null,
"mcp_call_status": "matched_non_empty",
"rows_fetched": 147,
"raw_rows_received": 147,
"rows_after_account_scope": 147,
"rows_after_recipe_filter": 147,
"rows_materialized": 147,
"rows_matched": 147,
"raw_row_keys_sample": [
"Период",
"Регистратор",
"СчетДт",
"СчетКт",
"Сумма",
"Period",
"Registrator",
"AccountDt",
"Amount"
],
"materialization_drop_reason": "none",
"account_token_raw": null,
"account_token_normalized": null,
"account_scope_fields_checked": [
"account_dt",
"account_kt",
"registrator",
"analytics"
],
"account_scope_match_strategy": "account_code_regex_plus_alias_map_v1",
"account_scope_drop_reason": "not_applicable",
"runtime_readiness": "LIVE_QUERYABLE_WITH_LIMITS",
"limited_reason_category": null,
"response_type": "FACTUAL_SUMMARY",
"execution_lane": "address_query",
"llm_decomposition_applied": false,
"llm_decomposition_attempted": false,
"llm_provider_used": "local",
"llm_decomposition_trace_id": null,
"llm_decomposition_effective_message": "Какие разделы учета наиболее заполнены и какие почти не используются?",
"llm_decomposition_reason": "not_address_like",
"fallback_rule_hit": null,
"sanitized_user_message": "какие разделы учета наиболее заполнены и какие почти не используются?",
"tool_gate_decision": "run_address_lane",
"tool_gate_reason": "address_mode_classifier_detected",
"answer_structure_v11": null,
"investigation_state_snapshot": null,
"normalized": null,
"normalizer_output": null
},
"error_code": null,
"error_message": null
}
]
}

View File

@ -0,0 +1,9 @@
# Response Audit: 2026-04-02_Address_General5_Live_Check_AfterFix_02
| id | strict | route_health | reply_type | intent | limited_reason | question | assistant_first_line |
|---|---|---|---|---|---|---|---|
| Q1 | True | ok_or_factual | factual | period_coverage_profile | None | За какие годы в базе есть данные? | Профиль периодов базы собран (movement-based aggregate). |
| Q2 | True | ok_or_factual | factual | period_coverage_profile | None | Какой год самый активный по количеству документов? | Профиль периодов базы собран (movement-based aggregate). |
| Q3 | True | ok_or_factual | factual | period_coverage_profile | None | Какой месяц самый активный по количеству операций? | Профиль периодов базы собран (movement-based aggregate). |
| Q4 | True | ok_or_factual | factual | document_type_and_account_section_profile | None | Какие типы документов используются чаще всего в базе? | Профиль типов документов и разделов учета собран (movement-based aggregate). |
| Q5 | True | ok_or_factual | factual | document_type_and_account_section_profile | None | Какие разделы учета наиболее заполнены и какие почти не используются? | Профиль типов документов и разделов учета собран (movement-based aggregate). |

View File

@ -0,0 +1,45 @@
{
"run_id": "2026-04-02_Address_General5_Live_Check_AfterFix_02",
"generated_at": "2026-04-02T19:29:40",
"source_questions_file": "X:\\1C\\NDC_1C\\docs\\ADDRESS\\question_sets\\temp_general5_live_check_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": 5,
"ok_200_count": 5,
"semantic_pass_count": 5,
"semantic_pass_rate": 1.0,
"route_pass_count": 5,
"route_pass_rate": 1.0,
"strict_pass_count": 5,
"strict_pass_rate": 1.0,
"factual_count": 5,
"partial_coverage_count": 0,
"clarification_required_count": 0,
"http_error_count": 0,
"llm_decomposition_applied_count": 0,
"avg_elapsed_ms": 3100.6
},
"distributions": {
"reply_type": {
"factual": 5
},
"actual_intent": {
"period_coverage_profile": 3,
"document_type_and_account_section_profile": 2
},
"actual_mode": {
"address_query": 5
},
"mcp_call_status": {
"matched_non_empty": 5
},
"limited_reason_category": {},
"route_health": {
"ok_or_factual": 5
}
}
}

View File

@ -0,0 +1,28 @@
# 2026-04-02_Address_General5_Live_Check_AfterFix_03
Generated at: 2026-04-02T19:45:20
Questions file: X:\1C\NDC_1C\docs\ADDRESS\question_sets\temp_general5_live_check_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: 5
- ok_200_count: 5
- semantic_pass_count: 5
- semantic_pass_rate: 1.0
- route_pass_count: 5
- route_pass_rate: 1.0
- strict_pass_count: 5
- strict_pass_rate: 1.0
- factual_count: 5
- partial_coverage_count: 0
- clarification_required_count: 0
- http_error_count: 0
- llm_decomposition_applied_count: 0
- avg_elapsed_ms: 2805.8
## Files
- run_summary.json
- full_live_results.json
- failures_only.json

View File

@ -0,0 +1,769 @@
{
"run_id": "2026-04-02_Address_General5_Live_Check_AfterFix_03",
"generated_at": "2026-04-02T19:45:20",
"summary": {
"run_id": "2026-04-02_Address_General5_Live_Check_AfterFix_03",
"generated_at": "2026-04-02T19:45:20",
"source_questions_file": "X:\\1C\\NDC_1C\\docs\\ADDRESS\\question_sets\\temp_general5_live_check_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": 5,
"ok_200_count": 5,
"semantic_pass_count": 5,
"semantic_pass_rate": 1.0,
"route_pass_count": 5,
"route_pass_rate": 1.0,
"strict_pass_count": 5,
"strict_pass_rate": 1.0,
"factual_count": 5,
"partial_coverage_count": 0,
"clarification_required_count": 0,
"http_error_count": 0,
"llm_decomposition_applied_count": 0,
"avg_elapsed_ms": 2805.8
},
"distributions": {
"reply_type": {
"factual": 5
},
"actual_intent": {
"period_coverage_profile": 3,
"document_type_and_account_section_profile": 2
},
"actual_mode": {
"address_query": 5
},
"mcp_call_status": {
"matched_non_empty": 5
},
"limited_reason_category": {},
"route_health": {
"ok_or_factual": 5
}
}
},
"rows": [
{
"index": 1,
"id": "Q1",
"question": "За какие годы в базе есть данные?",
"session": null,
"session_id": "asst-2026-04-02_Address_General5_Live_Check_AfterFix_03-q1",
"status_code": 200,
"ok": true,
"elapsed_ms": 780,
"reply_type": "factual",
"trace_id": "address--IzaA87urN",
"assistant_reply": "Профиль периодов базы собран (movement-based aggregate).\nСтрок агрегата: 134.\nПокрытие по датам: 2014-05-27T12:00:00Z.. 2026-03-31T00:00:00Z.\nГоды с данными: 2014..2026 (уникальных: 12).\nСамый активный год по документам: 2019 (1004).\nСамый активный месяц по операциям: 2015-02 (1249).\nТоп годов по документам:\n1. 2019: 1004\n2. 2018: 703\n3. 2015: 671\n4. 2016: 577\n5. 2020: 536\nТоп месяцев по операциям:\n1. 2015-02: 1249\n2. 2015-01: 924\n3. 2018-08: 854\n4. 2019-05: 536\n5. 2017-12: 503",
"assistant_reply_first_line": "Профиль периодов базы собран (movement-based aggregate).",
"expected_intent": "period_coverage_profile",
"actual_intent": "period_coverage_profile",
"intent_match": true,
"expected_mode": "address_query",
"actual_mode": "address_query",
"mode_match": true,
"expected_reply_type": null,
"reply_match": true,
"semantic_pass": true,
"route_pass": true,
"route_health": "ok_or_factual",
"strict_policy": "route",
"strict_pass": true,
"selected_recipe": "address_period_coverage_profile_v1",
"missing_required_filters": [],
"match_failure_stage": "none",
"match_failure_reason": null,
"rows_fetched": 134,
"rows_matched": 134,
"mcp_call_status": "matched_non_empty",
"limited_reason_category": null,
"llm_decomposition_applied": false,
"llm_decomposition_reason": "not_address_like",
"fallback_rule_hit": null,
"debug_payload": {
"trace_id": "address--IzaA87urN",
"prompt_version": "address_query_runtime_v1",
"schema_version": "address_query_runtime_v1",
"fallback_type": "none",
"route_summary": null,
"fragments": [],
"requirements_extracted": [],
"coverage_report": {
"requirements_total": 0,
"requirements_covered": 0,
"requirements_uncovered": [],
"requirements_partially_covered": [],
"clarification_needed_for": [],
"out_of_scope_requirements": []
},
"routes": [],
"retrieval_status": [],
"retrieval_results": [],
"answer_grounding_check": {
"status": "grounded",
"route_subject_match": true,
"missing_requirements": [],
"reasons": [
"management_profile_signal_detected",
"shape_not_detected",
"period_coverage_profile_signal_detected"
],
"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": "period_coverage_profile",
"detected_intent_confidence": "high",
"extracted_filters": {
"sort": "period_desc",
"period_to": "2026-04-02"
},
"missing_required_filters": [],
"selected_recipe": "address_period_coverage_profile_v1",
"mcp_call_status_legacy": "matched_non_empty",
"account_scope_mode": "preferred",
"account_scope_fallback_applied": false,
"anchor_type": "unknown",
"anchor_value_raw": null,
"anchor_value_resolved": null,
"resolver_confidence": "low",
"ambiguity_count": 0,
"match_failure_stage": "none",
"match_failure_reason": null,
"mcp_call_status": "matched_non_empty",
"rows_fetched": 134,
"raw_rows_received": 134,
"rows_after_account_scope": 134,
"rows_after_recipe_filter": 134,
"rows_materialized": 134,
"rows_matched": 134,
"raw_row_keys_sample": [
"Период",
"Регистратор",
"СчетДт",
"СчетКт",
"Сумма",
"Period",
"Registrator",
"Amount"
],
"materialization_drop_reason": "none",
"account_token_raw": null,
"account_token_normalized": null,
"account_scope_fields_checked": [
"account_dt",
"account_kt",
"registrator",
"analytics"
],
"account_scope_match_strategy": "account_code_regex_plus_alias_map_v1",
"account_scope_drop_reason": "not_applicable",
"runtime_readiness": "LIVE_QUERYABLE_WITH_LIMITS",
"limited_reason_category": null,
"response_type": "FACTUAL_SUMMARY",
"execution_lane": "address_query",
"llm_decomposition_applied": false,
"llm_decomposition_attempted": false,
"llm_provider_used": "local",
"llm_decomposition_trace_id": null,
"llm_decomposition_effective_message": "За какие годы в базе есть данные?",
"llm_decomposition_reason": "not_address_like",
"fallback_rule_hit": null,
"sanitized_user_message": "за какие годы в базе есть данные?",
"tool_gate_decision": "run_address_lane",
"tool_gate_reason": "address_mode_classifier_detected",
"answer_structure_v11": null,
"investigation_state_snapshot": null,
"normalized": null,
"normalizer_output": null
},
"error_code": null,
"error_message": null
},
{
"index": 2,
"id": "Q2",
"question": "Какой год самый активный по количеству документов?",
"session": null,
"session_id": "asst-2026-04-02_Address_General5_Live_Check_AfterFix_03-q2",
"status_code": 200,
"ok": true,
"elapsed_ms": 6137,
"reply_type": "factual",
"trace_id": "address-4r8q6DoYyz",
"assistant_reply": "Профиль периодов базы собран (movement-based aggregate).\nСтрок агрегата: 134.\nПокрытие по датам: 2014-05-27T12:00:00Z.. 2026-03-31T00:00:00Z.\nГоды с данными: 2014..2026 (уникальных: 12).\nСамый активный год по документам: 2019 (1004).\nСамый активный месяц по операциям: 2015-02 (1249).\nТоп годов по документам:\n1. 2019: 1004\n2. 2018: 703\n3. 2015: 671\n4. 2016: 577\n5. 2020: 536\nТоп месяцев по операциям:\n1. 2015-02: 1249\n2. 2015-01: 924\n3. 2018-08: 854\n4. 2019-05: 536\n5. 2017-12: 503",
"assistant_reply_first_line": "Профиль периодов базы собран (movement-based aggregate).",
"expected_intent": "period_coverage_profile",
"actual_intent": "period_coverage_profile",
"intent_match": true,
"expected_mode": "address_query",
"actual_mode": "address_query",
"mode_match": true,
"expected_reply_type": null,
"reply_match": true,
"semantic_pass": true,
"route_pass": true,
"route_health": "ok_or_factual",
"strict_policy": "route",
"strict_pass": true,
"selected_recipe": "address_period_coverage_profile_v1",
"missing_required_filters": [],
"match_failure_stage": "none",
"match_failure_reason": null,
"rows_fetched": 134,
"rows_matched": 134,
"mcp_call_status": "matched_non_empty",
"limited_reason_category": null,
"llm_decomposition_applied": false,
"llm_decomposition_reason": "normalized_fragment_rejected_intent_conflict",
"fallback_rule_hit": null,
"debug_payload": {
"trace_id": "address-4r8q6DoYyz",
"prompt_version": "address_query_runtime_v1",
"schema_version": "address_query_runtime_v1",
"fallback_type": "none",
"route_summary": null,
"fragments": [],
"requirements_extracted": [],
"coverage_report": {
"requirements_total": 0,
"requirements_covered": 0,
"requirements_uncovered": [],
"requirements_partially_covered": [],
"clarification_needed_for": [],
"out_of_scope_requirements": []
},
"routes": [],
"retrieval_status": [],
"retrieval_results": [],
"answer_grounding_check": {
"status": "grounded",
"route_subject_match": true,
"missing_requirements": [],
"reasons": [
"management_profile_signal_detected",
"document_list_signal_detected",
"period_coverage_profile_signal_detected"
],
"why_included_summary": [],
"selection_reason_summary": []
},
"dropped_intent_segments": [],
"detected_mode": "address_query",
"detected_mode_confidence": "medium",
"query_shape": "DOCUMENT_LIST",
"query_shape_confidence": "medium",
"detected_intent": "period_coverage_profile",
"detected_intent_confidence": "high",
"extracted_filters": {
"sort": "period_desc",
"period_to": "2026-04-02"
},
"missing_required_filters": [],
"selected_recipe": "address_period_coverage_profile_v1",
"mcp_call_status_legacy": "matched_non_empty",
"account_scope_mode": "preferred",
"account_scope_fallback_applied": false,
"anchor_type": "unknown",
"anchor_value_raw": null,
"anchor_value_resolved": null,
"resolver_confidence": "low",
"ambiguity_count": 0,
"match_failure_stage": "none",
"match_failure_reason": null,
"mcp_call_status": "matched_non_empty",
"rows_fetched": 134,
"raw_rows_received": 134,
"rows_after_account_scope": 134,
"rows_after_recipe_filter": 134,
"rows_materialized": 134,
"rows_matched": 134,
"raw_row_keys_sample": [
"Период",
"Регистратор",
"СчетДт",
"СчетКт",
"Сумма",
"Period",
"Registrator",
"Amount"
],
"materialization_drop_reason": "none",
"account_token_raw": null,
"account_token_normalized": null,
"account_scope_fields_checked": [
"account_dt",
"account_kt",
"registrator",
"analytics"
],
"account_scope_match_strategy": "account_code_regex_plus_alias_map_v1",
"account_scope_drop_reason": "not_applicable",
"runtime_readiness": "LIVE_QUERYABLE_WITH_LIMITS",
"limited_reason_category": null,
"response_type": "FACTUAL_SUMMARY",
"execution_lane": "address_query",
"llm_decomposition_applied": false,
"llm_decomposition_attempted": true,
"llm_provider_used": "local",
"llm_decomposition_trace_id": "JZJaNxdo2sfwwX",
"llm_decomposition_effective_message": "Какой год самый активный по количеству документов?",
"llm_decomposition_reason": "normalized_fragment_rejected_intent_conflict",
"fallback_rule_hit": null,
"sanitized_user_message": "какой год самый активный по количеству документов?",
"tool_gate_decision": "run_address_lane",
"tool_gate_reason": "address_mode_classifier_detected",
"answer_structure_v11": null,
"investigation_state_snapshot": null,
"normalized": null,
"normalizer_output": {
"trace_id": "JZJaNxdo2sfwwX",
"prompt_version": "normalizer_v2_0_2",
"applied": false,
"effective_message": "Какой год самый активный по количеству документов?"
}
},
"error_code": null,
"error_message": null
},
{
"index": 3,
"id": "Q3",
"question": "Какой месяц самый активный по количеству операций?",
"session": null,
"session_id": "asst-2026-04-02_Address_General5_Live_Check_AfterFix_03-q3",
"status_code": 200,
"ok": true,
"elapsed_ms": 951,
"reply_type": "factual",
"trace_id": "address-8M9cIXeAaF",
"assistant_reply": "Профиль периодов базы собран (movement-based aggregate).\nСтрок агрегата: 134.\nПокрытие по датам: 2014-05-27T12:00:00Z.. 2026-03-31T00:00:00Z.\nГоды с данными: 2014..2026 (уникальных: 12).\nСамый активный год по документам: 2019 (1004).\nСамый активный месяц по операциям: 2015-02 (1249).\nТоп годов по документам:\n1. 2019: 1004\n2. 2018: 703\n3. 2015: 671\n4. 2016: 577\n5. 2020: 536\nТоп месяцев по операциям:\n1. 2015-02: 1249\n2. 2015-01: 924\n3. 2018-08: 854\n4. 2019-05: 536\n5. 2017-12: 503",
"assistant_reply_first_line": "Профиль периодов базы собран (movement-based aggregate).",
"expected_intent": "period_coverage_profile",
"actual_intent": "period_coverage_profile",
"intent_match": true,
"expected_mode": "address_query",
"actual_mode": "address_query",
"mode_match": true,
"expected_reply_type": null,
"reply_match": true,
"semantic_pass": true,
"route_pass": true,
"route_health": "ok_or_factual",
"strict_policy": "route",
"strict_pass": true,
"selected_recipe": "address_period_coverage_profile_v1",
"missing_required_filters": [],
"match_failure_stage": "none",
"match_failure_reason": null,
"rows_fetched": 134,
"rows_matched": 134,
"mcp_call_status": "matched_non_empty",
"limited_reason_category": null,
"llm_decomposition_applied": false,
"llm_decomposition_reason": "not_address_like",
"fallback_rule_hit": null,
"debug_payload": {
"trace_id": "address-8M9cIXeAaF",
"prompt_version": "address_query_runtime_v1",
"schema_version": "address_query_runtime_v1",
"fallback_type": "none",
"route_summary": null,
"fragments": [],
"requirements_extracted": [],
"coverage_report": {
"requirements_total": 0,
"requirements_covered": 0,
"requirements_uncovered": [],
"requirements_partially_covered": [],
"clarification_needed_for": [],
"out_of_scope_requirements": []
},
"routes": [],
"retrieval_status": [],
"retrieval_results": [],
"answer_grounding_check": {
"status": "grounded",
"route_subject_match": true,
"missing_requirements": [],
"reasons": [
"management_profile_signal_detected",
"shape_not_detected",
"period_coverage_profile_signal_detected"
],
"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": "period_coverage_profile",
"detected_intent_confidence": "high",
"extracted_filters": {
"sort": "period_desc",
"period_to": "2026-04-02"
},
"missing_required_filters": [],
"selected_recipe": "address_period_coverage_profile_v1",
"mcp_call_status_legacy": "matched_non_empty",
"account_scope_mode": "preferred",
"account_scope_fallback_applied": false,
"anchor_type": "unknown",
"anchor_value_raw": null,
"anchor_value_resolved": null,
"resolver_confidence": "low",
"ambiguity_count": 0,
"match_failure_stage": "none",
"match_failure_reason": null,
"mcp_call_status": "matched_non_empty",
"rows_fetched": 134,
"raw_rows_received": 134,
"rows_after_account_scope": 134,
"rows_after_recipe_filter": 134,
"rows_materialized": 134,
"rows_matched": 134,
"raw_row_keys_sample": [
"Период",
"Регистратор",
"СчетДт",
"СчетКт",
"Сумма",
"Period",
"Registrator",
"Amount"
],
"materialization_drop_reason": "none",
"account_token_raw": null,
"account_token_normalized": null,
"account_scope_fields_checked": [
"account_dt",
"account_kt",
"registrator",
"analytics"
],
"account_scope_match_strategy": "account_code_regex_plus_alias_map_v1",
"account_scope_drop_reason": "not_applicable",
"runtime_readiness": "LIVE_QUERYABLE_WITH_LIMITS",
"limited_reason_category": null,
"response_type": "FACTUAL_SUMMARY",
"execution_lane": "address_query",
"llm_decomposition_applied": false,
"llm_decomposition_attempted": false,
"llm_provider_used": "local",
"llm_decomposition_trace_id": null,
"llm_decomposition_effective_message": "Какой месяц самый активный по количеству операций?",
"llm_decomposition_reason": "not_address_like",
"fallback_rule_hit": null,
"sanitized_user_message": "какой месяц самый активный по количеству операций?",
"tool_gate_decision": "run_address_lane",
"tool_gate_reason": "address_mode_classifier_detected",
"answer_structure_v11": null,
"investigation_state_snapshot": null,
"normalized": null,
"normalizer_output": null
},
"error_code": null,
"error_message": null
},
{
"index": 4,
"id": "Q4",
"question": "Какие типы документов используются чаще всего в базе?",
"session": null,
"session_id": "asst-2026-04-02_Address_General5_Live_Check_AfterFix_03-q4",
"status_code": 200,
"ok": true,
"elapsed_ms": 5156,
"reply_type": "factual",
"trace_id": "address-QVkxNBqT0e",
"assistant_reply": "Профиль типов документов и разделов учета собран (movement-based aggregate).\nСтрок агрегата: 147.\nТоп типов документов (по числу уникальных регистраторов):\n1. Списание с расчетного счета: 2352 (52.6%)\n2. Поступление товаров и услуг: 486 (10.9%)\n3. Регламентная операция: 414 (9.3%)\n4. Поступление на расчетный счет: 323 (7.2%)\n5. Счет-фактура полученный: 261 (5.8%)\n6. Операция (бухгалтерский и налоговый учет): 147 (3.3%)\n7. Реализация товаров и услуг: 123 (2.8%)\n8. Отражение зарплаты в регламентированном учете: 87 (1.9%)\n9. Приходный кассовый ордер: 76 (1.7%)\n10. Расходный кассовый ордер: 73 (1.6%)\nНаиболее заполненные разделы учета (по операциям Дт+Кт):\n1. 90 (Продажи): 2973 (12.1%)\n2. 51 (Расчетные счета): 2967 (12.1%)\n3. 60 (Расчеты с поставщиками и подрядчиками): 2793 (11.4%)\n4. 44 (Расходы на продажу): 2422 (9.9%)\n5. 68 (Расчеты по налогам и сборам): 1553 (6.3%)\n6. 10 (Материалы): 1494 (6.1%)\n7. 19 (НДС по приобретенным ценностям): 1489 (6.1%)\n8. 91 (Прочие доходы и расходы): 1324 (5.4%)\n9. 41 (Товары): 1312 (5.3%)\n10. 76 (Расчеты с разными дебиторами и кредиторами): 1240 (5.0%)\nРазделы с минимальной активностью (среди использованных):\n1. 58 (Финансовые вложения): 2\n2. 81 (Собственные акции (доли)): 2\n3. 80 (Уставный капитал): 5\n4. 03: 6\n5. 04 (Нематериальные активы): 6\n6. 75 (Расчеты с учредителями): 16\n7. 55 (Специальные счета в банках): 18\n8. 84 (Нераспределенная прибыль (непокрытый убыток)): 20\n9. 26 (Общехозяйственные расходы): 51\n10. 71 (Расчеты с подотчетными лицами): 76",
"assistant_reply_first_line": "Профиль типов документов и разделов учета собран (movement-based aggregate).",
"expected_intent": "document_type_and_account_section_profile",
"actual_intent": "document_type_and_account_section_profile",
"intent_match": true,
"expected_mode": "address_query",
"actual_mode": "address_query",
"mode_match": true,
"expected_reply_type": null,
"reply_match": true,
"semantic_pass": true,
"route_pass": true,
"route_health": "ok_or_factual",
"strict_policy": "route",
"strict_pass": true,
"selected_recipe": "address_document_type_and_account_section_profile_v1",
"missing_required_filters": [],
"match_failure_stage": "none",
"match_failure_reason": null,
"rows_fetched": 147,
"rows_matched": 147,
"mcp_call_status": "matched_non_empty",
"limited_reason_category": null,
"llm_decomposition_applied": false,
"llm_decomposition_reason": "normalized_fragment_same",
"fallback_rule_hit": null,
"debug_payload": {
"trace_id": "address-QVkxNBqT0e",
"prompt_version": "address_query_runtime_v1",
"schema_version": "address_query_runtime_v1",
"fallback_type": "none",
"route_summary": null,
"fragments": [],
"requirements_extracted": [],
"coverage_report": {
"requirements_total": 0,
"requirements_covered": 0,
"requirements_uncovered": [],
"requirements_partially_covered": [],
"clarification_needed_for": [],
"out_of_scope_requirements": []
},
"routes": [],
"retrieval_status": [],
"retrieval_results": [],
"answer_grounding_check": {
"status": "grounded",
"route_subject_match": true,
"missing_requirements": [],
"reasons": [
"address_action_detected",
"address_entity_detected",
"document_list_signal_detected",
"document_type_and_account_section_profile_signal_detected"
],
"why_included_summary": [],
"selection_reason_summary": []
},
"dropped_intent_segments": [],
"detected_mode": "address_query",
"detected_mode_confidence": "high",
"query_shape": "DOCUMENT_LIST",
"query_shape_confidence": "medium",
"detected_intent": "document_type_and_account_section_profile",
"detected_intent_confidence": "high",
"extracted_filters": {
"sort": "period_desc",
"period_to": "2026-04-02"
},
"missing_required_filters": [],
"selected_recipe": "address_document_type_and_account_section_profile_v1",
"mcp_call_status_legacy": "matched_non_empty",
"account_scope_mode": "preferred",
"account_scope_fallback_applied": false,
"anchor_type": "unknown",
"anchor_value_raw": null,
"anchor_value_resolved": null,
"resolver_confidence": "low",
"ambiguity_count": 0,
"match_failure_stage": "none",
"match_failure_reason": null,
"mcp_call_status": "matched_non_empty",
"rows_fetched": 147,
"raw_rows_received": 147,
"rows_after_account_scope": 147,
"rows_after_recipe_filter": 147,
"rows_materialized": 147,
"rows_matched": 147,
"raw_row_keys_sample": [
"Период",
"Регистратор",
"СчетДт",
"СчетКт",
"Сумма",
"Period",
"Registrator",
"AccountDt",
"Amount"
],
"materialization_drop_reason": "none",
"account_token_raw": null,
"account_token_normalized": null,
"account_scope_fields_checked": [
"account_dt",
"account_kt",
"registrator",
"analytics"
],
"account_scope_match_strategy": "account_code_regex_plus_alias_map_v1",
"account_scope_drop_reason": "not_applicable",
"runtime_readiness": "LIVE_QUERYABLE_WITH_LIMITS",
"limited_reason_category": null,
"response_type": "FACTUAL_SUMMARY",
"execution_lane": "address_query",
"llm_decomposition_applied": false,
"llm_decomposition_attempted": true,
"llm_provider_used": "local",
"llm_decomposition_trace_id": "3zbySabYai6x29",
"llm_decomposition_effective_message": "Какие типы документов используются чаще всего в базе?",
"llm_decomposition_reason": "normalized_fragment_same",
"fallback_rule_hit": null,
"sanitized_user_message": "какие типы документов используются чаще всего в базе?",
"tool_gate_decision": "run_address_lane",
"tool_gate_reason": "address_mode_classifier_detected",
"answer_structure_v11": null,
"investigation_state_snapshot": null,
"normalized": null,
"normalizer_output": {
"trace_id": "3zbySabYai6x29",
"prompt_version": "normalizer_v2_0_2",
"applied": false,
"effective_message": "Какие типы документов используются чаще всего в базе?"
}
},
"error_code": null,
"error_message": null
},
{
"index": 5,
"id": "Q5",
"question": "Какие разделы учета наиболее заполнены и какие почти не используются?",
"session": null,
"session_id": "asst-2026-04-02_Address_General5_Live_Check_AfterFix_03-q5",
"status_code": 200,
"ok": true,
"elapsed_ms": 1005,
"reply_type": "factual",
"trace_id": "address-wpbdV5Mkcd",
"assistant_reply": "Профиль типов документов и разделов учета собран (movement-based aggregate).\nСтрок агрегата: 147.\nТоп типов документов (по числу уникальных регистраторов):\n1. Списание с расчетного счета: 2352 (52.6%)\n2. Поступление товаров и услуг: 486 (10.9%)\n3. Регламентная операция: 414 (9.3%)\n4. Поступление на расчетный счет: 323 (7.2%)\n5. Счет-фактура полученный: 261 (5.8%)\n6. Операция (бухгалтерский и налоговый учет): 147 (3.3%)\n7. Реализация товаров и услуг: 123 (2.8%)\n8. Отражение зарплаты в регламентированном учете: 87 (1.9%)\n9. Приходный кассовый ордер: 76 (1.7%)\n10. Расходный кассовый ордер: 73 (1.6%)\nНаиболее заполненные разделы учета (по операциям Дт+Кт):\n1. 90 (Продажи): 2973 (12.1%)\n2. 51 (Расчетные счета): 2967 (12.1%)\n3. 60 (Расчеты с поставщиками и подрядчиками): 2793 (11.4%)\n4. 44 (Расходы на продажу): 2422 (9.9%)\n5. 68 (Расчеты по налогам и сборам): 1553 (6.3%)\n6. 10 (Материалы): 1494 (6.1%)\n7. 19 (НДС по приобретенным ценностям): 1489 (6.1%)\n8. 91 (Прочие доходы и расходы): 1324 (5.4%)\n9. 41 (Товары): 1312 (5.3%)\n10. 76 (Расчеты с разными дебиторами и кредиторами): 1240 (5.0%)\nРазделы с минимальной активностью (среди использованных):\n1. 58 (Финансовые вложения): 2\n2. 81 (Собственные акции (доли)): 2\n3. 80 (Уставный капитал): 5\n4. 03: 6\n5. 04 (Нематериальные активы): 6\n6. 75 (Расчеты с учредителями): 16\n7. 55 (Специальные счета в банках): 18\n8. 84 (Нераспределенная прибыль (непокрытый убыток)): 20\n9. 26 (Общехозяйственные расходы): 51\n10. 71 (Расчеты с подотчетными лицами): 76",
"assistant_reply_first_line": "Профиль типов документов и разделов учета собран (movement-based aggregate).",
"expected_intent": "document_type_and_account_section_profile",
"actual_intent": "document_type_and_account_section_profile",
"intent_match": true,
"expected_mode": "address_query",
"actual_mode": "address_query",
"mode_match": true,
"expected_reply_type": null,
"reply_match": true,
"semantic_pass": true,
"route_pass": true,
"route_health": "ok_or_factual",
"strict_policy": "route",
"strict_pass": true,
"selected_recipe": "address_document_type_and_account_section_profile_v1",
"missing_required_filters": [],
"match_failure_stage": "none",
"match_failure_reason": null,
"rows_fetched": 147,
"rows_matched": 147,
"mcp_call_status": "matched_non_empty",
"limited_reason_category": null,
"llm_decomposition_applied": false,
"llm_decomposition_reason": "not_address_like",
"fallback_rule_hit": null,
"debug_payload": {
"trace_id": "address-wpbdV5Mkcd",
"prompt_version": "address_query_runtime_v1",
"schema_version": "address_query_runtime_v1",
"fallback_type": "none",
"route_summary": null,
"fragments": [],
"requirements_extracted": [],
"coverage_report": {
"requirements_total": 0,
"requirements_covered": 0,
"requirements_uncovered": [],
"requirements_partially_covered": [],
"clarification_needed_for": [],
"out_of_scope_requirements": []
},
"routes": [],
"retrieval_status": [],
"retrieval_results": [],
"answer_grounding_check": {
"status": "grounded",
"route_subject_match": true,
"missing_requirements": [],
"reasons": [
"management_profile_signal_detected",
"shape_not_detected",
"document_type_and_account_section_profile_signal_detected"
],
"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": "document_type_and_account_section_profile",
"detected_intent_confidence": "high",
"extracted_filters": {
"sort": "period_desc",
"period_to": "2026-04-02"
},
"missing_required_filters": [],
"selected_recipe": "address_document_type_and_account_section_profile_v1",
"mcp_call_status_legacy": "matched_non_empty",
"account_scope_mode": "preferred",
"account_scope_fallback_applied": false,
"anchor_type": "unknown",
"anchor_value_raw": null,
"anchor_value_resolved": null,
"resolver_confidence": "low",
"ambiguity_count": 0,
"match_failure_stage": "none",
"match_failure_reason": null,
"mcp_call_status": "matched_non_empty",
"rows_fetched": 147,
"raw_rows_received": 147,
"rows_after_account_scope": 147,
"rows_after_recipe_filter": 147,
"rows_materialized": 147,
"rows_matched": 147,
"raw_row_keys_sample": [
"Период",
"Регистратор",
"СчетДт",
"СчетКт",
"Сумма",
"Period",
"Registrator",
"AccountDt",
"Amount"
],
"materialization_drop_reason": "none",
"account_token_raw": null,
"account_token_normalized": null,
"account_scope_fields_checked": [
"account_dt",
"account_kt",
"registrator",
"analytics"
],
"account_scope_match_strategy": "account_code_regex_plus_alias_map_v1",
"account_scope_drop_reason": "not_applicable",
"runtime_readiness": "LIVE_QUERYABLE_WITH_LIMITS",
"limited_reason_category": null,
"response_type": "FACTUAL_SUMMARY",
"execution_lane": "address_query",
"llm_decomposition_applied": false,
"llm_decomposition_attempted": false,
"llm_provider_used": "local",
"llm_decomposition_trace_id": null,
"llm_decomposition_effective_message": "Какие разделы учета наиболее заполнены и какие почти не используются?",
"llm_decomposition_reason": "not_address_like",
"fallback_rule_hit": null,
"sanitized_user_message": "какие разделы учета наиболее заполнены и какие почти не используются?",
"tool_gate_decision": "run_address_lane",
"tool_gate_reason": "address_mode_classifier_detected",
"answer_structure_v11": null,
"investigation_state_snapshot": null,
"normalized": null,
"normalizer_output": null
},
"error_code": null,
"error_message": null
}
]
}

View File

@ -0,0 +1,9 @@
# Response Audit: 2026-04-02_Address_General5_Live_Check_AfterFix_03
| id | strict | route_health | reply_type | intent | limited_reason | question | assistant_first_line |
|---|---|---|---|---|---|---|---|
| Q1 | True | ok_or_factual | factual | period_coverage_profile | None | За какие годы в базе есть данные? | Профиль периодов базы собран (movement-based aggregate). |
| Q2 | True | ok_or_factual | factual | period_coverage_profile | None | Какой год самый активный по количеству документов? | Профиль периодов базы собран (movement-based aggregate). |
| Q3 | True | ok_or_factual | factual | period_coverage_profile | None | Какой месяц самый активный по количеству операций? | Профиль периодов базы собран (movement-based aggregate). |
| Q4 | True | ok_or_factual | factual | document_type_and_account_section_profile | None | Какие типы документов используются чаще всего в базе? | Профиль типов документов и разделов учета собран (movement-based aggregate). |
| Q5 | True | ok_or_factual | factual | document_type_and_account_section_profile | None | Какие разделы учета наиболее заполнены и какие почти не используются? | Профиль типов документов и разделов учета собран (movement-based aggregate). |

View File

@ -0,0 +1,45 @@
{
"run_id": "2026-04-02_Address_General5_Live_Check_AfterFix_03",
"generated_at": "2026-04-02T19:45:20",
"source_questions_file": "X:\\1C\\NDC_1C\\docs\\ADDRESS\\question_sets\\temp_general5_live_check_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": 5,
"ok_200_count": 5,
"semantic_pass_count": 5,
"semantic_pass_rate": 1.0,
"route_pass_count": 5,
"route_pass_rate": 1.0,
"strict_pass_count": 5,
"strict_pass_rate": 1.0,
"factual_count": 5,
"partial_coverage_count": 0,
"clarification_required_count": 0,
"http_error_count": 0,
"llm_decomposition_applied_count": 0,
"avg_elapsed_ms": 2805.8
},
"distributions": {
"reply_type": {
"factual": 5
},
"actual_intent": {
"period_coverage_profile": 3,
"document_type_and_account_section_profile": 2
},
"actual_mode": {
"address_query": 5
},
"mcp_call_status": {
"matched_non_empty": 5
},
"limited_reason_category": {},
"route_health": {
"ok_or_factual": 5
}
}
}

View File

@ -0,0 +1,28 @@
# 2026-04-02_Address_General5_Live_Check_AfterFocusFix_04
Generated at: 2026-04-02T20:11:30
Questions file: X:\1C\NDC_1C\docs\ADDRESS\question_sets\temp_general5_live_check_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: 5
- ok_200_count: 5
- semantic_pass_count: 5
- semantic_pass_rate: 1.0
- route_pass_count: 5
- route_pass_rate: 1.0
- strict_pass_count: 5
- strict_pass_rate: 1.0
- factual_count: 5
- partial_coverage_count: 0
- clarification_required_count: 0
- http_error_count: 0
- llm_decomposition_applied_count: 0
- avg_elapsed_ms: 2712.4
## Files
- run_summary.json
- full_live_results.json
- failures_only.json

View File

@ -0,0 +1,769 @@
{
"run_id": "2026-04-02_Address_General5_Live_Check_AfterFocusFix_04",
"generated_at": "2026-04-02T20:11:30",
"summary": {
"run_id": "2026-04-02_Address_General5_Live_Check_AfterFocusFix_04",
"generated_at": "2026-04-02T20:11:30",
"source_questions_file": "X:\\1C\\NDC_1C\\docs\\ADDRESS\\question_sets\\temp_general5_live_check_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": 5,
"ok_200_count": 5,
"semantic_pass_count": 5,
"semantic_pass_rate": 1.0,
"route_pass_count": 5,
"route_pass_rate": 1.0,
"strict_pass_count": 5,
"strict_pass_rate": 1.0,
"factual_count": 5,
"partial_coverage_count": 0,
"clarification_required_count": 0,
"http_error_count": 0,
"llm_decomposition_applied_count": 0,
"avg_elapsed_ms": 2712.4
},
"distributions": {
"reply_type": {
"factual": 5
},
"actual_intent": {
"period_coverage_profile": 3,
"document_type_and_account_section_profile": 2
},
"actual_mode": {
"address_query": 5
},
"mcp_call_status": {
"matched_non_empty": 5
},
"limited_reason_category": {},
"route_health": {
"ok_or_factual": 5
}
}
},
"rows": [
{
"index": 1,
"id": "Q1",
"question": "За какие годы в базе есть данные?",
"session": null,
"session_id": "asst-2026-04-02_Address_General5_Live_Check_AfterFocusFix_04-q1",
"status_code": 200,
"ok": true,
"elapsed_ms": 347,
"reply_type": "factual",
"trace_id": "address-YQkPAhS48Z",
"assistant_reply": "Профиль периодов базы собран (movement-based aggregate).\nСтрок агрегата: 134.\nОперационный период с выраженной активностью: 2014..2022.\nНизкоактивный хвост (единичные записи): 2023, 2025, 2026.\nПолный технический диапазон дат: 2014-05-27T12:00:00Z.. 2026-03-31T00:00:00Z.",
"assistant_reply_first_line": "Профиль периодов базы собран (movement-based aggregate).",
"expected_intent": "period_coverage_profile",
"actual_intent": "period_coverage_profile",
"intent_match": true,
"expected_mode": "address_query",
"actual_mode": "address_query",
"mode_match": true,
"expected_reply_type": null,
"reply_match": true,
"semantic_pass": true,
"route_pass": true,
"route_health": "ok_or_factual",
"strict_policy": "route",
"strict_pass": true,
"selected_recipe": "address_period_coverage_profile_v1",
"missing_required_filters": [],
"match_failure_stage": "none",
"match_failure_reason": null,
"rows_fetched": 134,
"rows_matched": 134,
"mcp_call_status": "matched_non_empty",
"limited_reason_category": null,
"llm_decomposition_applied": false,
"llm_decomposition_reason": "not_address_like",
"fallback_rule_hit": null,
"debug_payload": {
"trace_id": "address-YQkPAhS48Z",
"prompt_version": "address_query_runtime_v1",
"schema_version": "address_query_runtime_v1",
"fallback_type": "none",
"route_summary": null,
"fragments": [],
"requirements_extracted": [],
"coverage_report": {
"requirements_total": 0,
"requirements_covered": 0,
"requirements_uncovered": [],
"requirements_partially_covered": [],
"clarification_needed_for": [],
"out_of_scope_requirements": []
},
"routes": [],
"retrieval_status": [],
"retrieval_results": [],
"answer_grounding_check": {
"status": "grounded",
"route_subject_match": true,
"missing_requirements": [],
"reasons": [
"management_profile_signal_detected",
"shape_not_detected",
"period_coverage_profile_signal_detected"
],
"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": "period_coverage_profile",
"detected_intent_confidence": "high",
"extracted_filters": {
"sort": "period_desc",
"period_to": "2026-04-02"
},
"missing_required_filters": [],
"selected_recipe": "address_period_coverage_profile_v1",
"mcp_call_status_legacy": "matched_non_empty",
"account_scope_mode": "preferred",
"account_scope_fallback_applied": false,
"anchor_type": "unknown",
"anchor_value_raw": null,
"anchor_value_resolved": null,
"resolver_confidence": "low",
"ambiguity_count": 0,
"match_failure_stage": "none",
"match_failure_reason": null,
"mcp_call_status": "matched_non_empty",
"rows_fetched": 134,
"raw_rows_received": 134,
"rows_after_account_scope": 134,
"rows_after_recipe_filter": 134,
"rows_materialized": 134,
"rows_matched": 134,
"raw_row_keys_sample": [
"Период",
"Регистратор",
"СчетДт",
"СчетКт",
"Сумма",
"Period",
"Registrator",
"Amount"
],
"materialization_drop_reason": "none",
"account_token_raw": null,
"account_token_normalized": null,
"account_scope_fields_checked": [
"account_dt",
"account_kt",
"registrator",
"analytics"
],
"account_scope_match_strategy": "account_code_regex_plus_alias_map_v1",
"account_scope_drop_reason": "not_applicable",
"runtime_readiness": "LIVE_QUERYABLE_WITH_LIMITS",
"limited_reason_category": null,
"response_type": "FACTUAL_SUMMARY",
"execution_lane": "address_query",
"llm_decomposition_applied": false,
"llm_decomposition_attempted": false,
"llm_provider_used": "local",
"llm_decomposition_trace_id": null,
"llm_decomposition_effective_message": "За какие годы в базе есть данные?",
"llm_decomposition_reason": "not_address_like",
"fallback_rule_hit": null,
"sanitized_user_message": "за какие годы в базе есть данные?",
"tool_gate_decision": "run_address_lane",
"tool_gate_reason": "address_mode_classifier_detected",
"answer_structure_v11": null,
"investigation_state_snapshot": null,
"normalized": null,
"normalizer_output": null
},
"error_code": null,
"error_message": null
},
{
"index": 2,
"id": "Q2",
"question": "Какой год самый активный по количеству документов?",
"session": null,
"session_id": "asst-2026-04-02_Address_General5_Live_Check_AfterFocusFix_04-q2",
"status_code": 200,
"ok": true,
"elapsed_ms": 6067,
"reply_type": "factual",
"trace_id": "address-_kFbMGKC0d",
"assistant_reply": "Профиль периодов базы собран (movement-based aggregate).\nСтрок агрегата: 134.\nСамый активный год по документам: 2019 (1004).\n1. 2019: 1004\n2. 2018: 703\n3. 2015: 671\n4. 2016: 577\n5. 2020: 536",
"assistant_reply_first_line": "Профиль периодов базы собран (movement-based aggregate).",
"expected_intent": "period_coverage_profile",
"actual_intent": "period_coverage_profile",
"intent_match": true,
"expected_mode": "address_query",
"actual_mode": "address_query",
"mode_match": true,
"expected_reply_type": null,
"reply_match": true,
"semantic_pass": true,
"route_pass": true,
"route_health": "ok_or_factual",
"strict_policy": "route",
"strict_pass": true,
"selected_recipe": "address_period_coverage_profile_v1",
"missing_required_filters": [],
"match_failure_stage": "none",
"match_failure_reason": null,
"rows_fetched": 134,
"rows_matched": 134,
"mcp_call_status": "matched_non_empty",
"limited_reason_category": null,
"llm_decomposition_applied": false,
"llm_decomposition_reason": "normalized_fragment_rejected_intent_conflict",
"fallback_rule_hit": null,
"debug_payload": {
"trace_id": "address-_kFbMGKC0d",
"prompt_version": "address_query_runtime_v1",
"schema_version": "address_query_runtime_v1",
"fallback_type": "none",
"route_summary": null,
"fragments": [],
"requirements_extracted": [],
"coverage_report": {
"requirements_total": 0,
"requirements_covered": 0,
"requirements_uncovered": [],
"requirements_partially_covered": [],
"clarification_needed_for": [],
"out_of_scope_requirements": []
},
"routes": [],
"retrieval_status": [],
"retrieval_results": [],
"answer_grounding_check": {
"status": "grounded",
"route_subject_match": true,
"missing_requirements": [],
"reasons": [
"management_profile_signal_detected",
"document_list_signal_detected",
"period_coverage_profile_signal_detected"
],
"why_included_summary": [],
"selection_reason_summary": []
},
"dropped_intent_segments": [],
"detected_mode": "address_query",
"detected_mode_confidence": "medium",
"query_shape": "DOCUMENT_LIST",
"query_shape_confidence": "medium",
"detected_intent": "period_coverage_profile",
"detected_intent_confidence": "high",
"extracted_filters": {
"sort": "period_desc",
"period_to": "2026-04-02"
},
"missing_required_filters": [],
"selected_recipe": "address_period_coverage_profile_v1",
"mcp_call_status_legacy": "matched_non_empty",
"account_scope_mode": "preferred",
"account_scope_fallback_applied": false,
"anchor_type": "unknown",
"anchor_value_raw": null,
"anchor_value_resolved": null,
"resolver_confidence": "low",
"ambiguity_count": 0,
"match_failure_stage": "none",
"match_failure_reason": null,
"mcp_call_status": "matched_non_empty",
"rows_fetched": 134,
"raw_rows_received": 134,
"rows_after_account_scope": 134,
"rows_after_recipe_filter": 134,
"rows_materialized": 134,
"rows_matched": 134,
"raw_row_keys_sample": [
"Период",
"Регистратор",
"СчетДт",
"СчетКт",
"Сумма",
"Period",
"Registrator",
"Amount"
],
"materialization_drop_reason": "none",
"account_token_raw": null,
"account_token_normalized": null,
"account_scope_fields_checked": [
"account_dt",
"account_kt",
"registrator",
"analytics"
],
"account_scope_match_strategy": "account_code_regex_plus_alias_map_v1",
"account_scope_drop_reason": "not_applicable",
"runtime_readiness": "LIVE_QUERYABLE_WITH_LIMITS",
"limited_reason_category": null,
"response_type": "FACTUAL_SUMMARY",
"execution_lane": "address_query",
"llm_decomposition_applied": false,
"llm_decomposition_attempted": true,
"llm_provider_used": "local",
"llm_decomposition_trace_id": "2M199yWCsRuVEl",
"llm_decomposition_effective_message": "Какой год самый активный по количеству документов?",
"llm_decomposition_reason": "normalized_fragment_rejected_intent_conflict",
"fallback_rule_hit": null,
"sanitized_user_message": "какой год самый активный по количеству документов?",
"tool_gate_decision": "run_address_lane",
"tool_gate_reason": "address_mode_classifier_detected",
"answer_structure_v11": null,
"investigation_state_snapshot": null,
"normalized": null,
"normalizer_output": {
"trace_id": "2M199yWCsRuVEl",
"prompt_version": "normalizer_v2_0_2",
"applied": false,
"effective_message": "Какой год самый активный по количеству документов?"
}
},
"error_code": null,
"error_message": null
},
{
"index": 3,
"id": "Q3",
"question": "Какой месяц самый активный по количеству операций?",
"session": null,
"session_id": "asst-2026-04-02_Address_General5_Live_Check_AfterFocusFix_04-q3",
"status_code": 200,
"ok": true,
"elapsed_ms": 1035,
"reply_type": "factual",
"trace_id": "address-Yko0r2wuQx",
"assistant_reply": "Профиль периодов базы собран (movement-based aggregate).\nСтрок агрегата: 134.\nСамый активный месяц по операциям: 2015-02 (1249).\n1. 2015-02: 1249\n2. 2015-01: 924\n3. 2018-08: 854\n4. 2019-05: 536\n5. 2017-12: 503",
"assistant_reply_first_line": "Профиль периодов базы собран (movement-based aggregate).",
"expected_intent": "period_coverage_profile",
"actual_intent": "period_coverage_profile",
"intent_match": true,
"expected_mode": "address_query",
"actual_mode": "address_query",
"mode_match": true,
"expected_reply_type": null,
"reply_match": true,
"semantic_pass": true,
"route_pass": true,
"route_health": "ok_or_factual",
"strict_policy": "route",
"strict_pass": true,
"selected_recipe": "address_period_coverage_profile_v1",
"missing_required_filters": [],
"match_failure_stage": "none",
"match_failure_reason": null,
"rows_fetched": 134,
"rows_matched": 134,
"mcp_call_status": "matched_non_empty",
"limited_reason_category": null,
"llm_decomposition_applied": false,
"llm_decomposition_reason": "not_address_like",
"fallback_rule_hit": null,
"debug_payload": {
"trace_id": "address-Yko0r2wuQx",
"prompt_version": "address_query_runtime_v1",
"schema_version": "address_query_runtime_v1",
"fallback_type": "none",
"route_summary": null,
"fragments": [],
"requirements_extracted": [],
"coverage_report": {
"requirements_total": 0,
"requirements_covered": 0,
"requirements_uncovered": [],
"requirements_partially_covered": [],
"clarification_needed_for": [],
"out_of_scope_requirements": []
},
"routes": [],
"retrieval_status": [],
"retrieval_results": [],
"answer_grounding_check": {
"status": "grounded",
"route_subject_match": true,
"missing_requirements": [],
"reasons": [
"management_profile_signal_detected",
"shape_not_detected",
"period_coverage_profile_signal_detected"
],
"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": "period_coverage_profile",
"detected_intent_confidence": "high",
"extracted_filters": {
"sort": "period_desc",
"period_to": "2026-04-02"
},
"missing_required_filters": [],
"selected_recipe": "address_period_coverage_profile_v1",
"mcp_call_status_legacy": "matched_non_empty",
"account_scope_mode": "preferred",
"account_scope_fallback_applied": false,
"anchor_type": "unknown",
"anchor_value_raw": null,
"anchor_value_resolved": null,
"resolver_confidence": "low",
"ambiguity_count": 0,
"match_failure_stage": "none",
"match_failure_reason": null,
"mcp_call_status": "matched_non_empty",
"rows_fetched": 134,
"raw_rows_received": 134,
"rows_after_account_scope": 134,
"rows_after_recipe_filter": 134,
"rows_materialized": 134,
"rows_matched": 134,
"raw_row_keys_sample": [
"Период",
"Регистратор",
"СчетДт",
"СчетКт",
"Сумма",
"Period",
"Registrator",
"Amount"
],
"materialization_drop_reason": "none",
"account_token_raw": null,
"account_token_normalized": null,
"account_scope_fields_checked": [
"account_dt",
"account_kt",
"registrator",
"analytics"
],
"account_scope_match_strategy": "account_code_regex_plus_alias_map_v1",
"account_scope_drop_reason": "not_applicable",
"runtime_readiness": "LIVE_QUERYABLE_WITH_LIMITS",
"limited_reason_category": null,
"response_type": "FACTUAL_SUMMARY",
"execution_lane": "address_query",
"llm_decomposition_applied": false,
"llm_decomposition_attempted": false,
"llm_provider_used": "local",
"llm_decomposition_trace_id": null,
"llm_decomposition_effective_message": "Какой месяц самый активный по количеству операций?",
"llm_decomposition_reason": "not_address_like",
"fallback_rule_hit": null,
"sanitized_user_message": "какой месяц самый активный по количеству операций?",
"tool_gate_decision": "run_address_lane",
"tool_gate_reason": "address_mode_classifier_detected",
"answer_structure_v11": null,
"investigation_state_snapshot": null,
"normalized": null,
"normalizer_output": null
},
"error_code": null,
"error_message": null
},
{
"index": 4,
"id": "Q4",
"question": "Какие типы документов используются чаще всего в базе?",
"session": null,
"session_id": "asst-2026-04-02_Address_General5_Live_Check_AfterFocusFix_04-q4",
"status_code": 200,
"ok": true,
"elapsed_ms": 5138,
"reply_type": "factual",
"trace_id": "address-ABN02IDAER",
"assistant_reply": "Профиль типов документов и разделов учета собран (movement-based aggregate).\nСтрок агрегата: 147.\nТоп типов документов (по числу уникальных регистраторов):\n1. Списание с расчетного счета: 2352 (52.6%)\n2. Поступление товаров и услуг: 486 (10.9%)\n3. Регламентная операция: 414 (9.3%)\n4. Поступление на расчетный счет: 323 (7.2%)\n5. Счет-фактура полученный: 261 (5.8%)\n6. Операция (бухгалтерский и налоговый учет): 147 (3.3%)\n7. Реализация товаров и услуг: 123 (2.8%)\n8. Отражение зарплаты в регламентированном учете: 87 (1.9%)\n9. Приходный кассовый ордер: 76 (1.7%)\n10. Расходный кассовый ордер: 73 (1.6%)",
"assistant_reply_first_line": "Профиль типов документов и разделов учета собран (movement-based aggregate).",
"expected_intent": "document_type_and_account_section_profile",
"actual_intent": "document_type_and_account_section_profile",
"intent_match": true,
"expected_mode": "address_query",
"actual_mode": "address_query",
"mode_match": true,
"expected_reply_type": null,
"reply_match": true,
"semantic_pass": true,
"route_pass": true,
"route_health": "ok_or_factual",
"strict_policy": "route",
"strict_pass": true,
"selected_recipe": "address_document_type_and_account_section_profile_v1",
"missing_required_filters": [],
"match_failure_stage": "none",
"match_failure_reason": null,
"rows_fetched": 147,
"rows_matched": 147,
"mcp_call_status": "matched_non_empty",
"limited_reason_category": null,
"llm_decomposition_applied": false,
"llm_decomposition_reason": "normalized_fragment_same",
"fallback_rule_hit": null,
"debug_payload": {
"trace_id": "address-ABN02IDAER",
"prompt_version": "address_query_runtime_v1",
"schema_version": "address_query_runtime_v1",
"fallback_type": "none",
"route_summary": null,
"fragments": [],
"requirements_extracted": [],
"coverage_report": {
"requirements_total": 0,
"requirements_covered": 0,
"requirements_uncovered": [],
"requirements_partially_covered": [],
"clarification_needed_for": [],
"out_of_scope_requirements": []
},
"routes": [],
"retrieval_status": [],
"retrieval_results": [],
"answer_grounding_check": {
"status": "grounded",
"route_subject_match": true,
"missing_requirements": [],
"reasons": [
"address_action_detected",
"address_entity_detected",
"document_list_signal_detected",
"document_type_and_account_section_profile_signal_detected"
],
"why_included_summary": [],
"selection_reason_summary": []
},
"dropped_intent_segments": [],
"detected_mode": "address_query",
"detected_mode_confidence": "high",
"query_shape": "DOCUMENT_LIST",
"query_shape_confidence": "medium",
"detected_intent": "document_type_and_account_section_profile",
"detected_intent_confidence": "high",
"extracted_filters": {
"sort": "period_desc",
"period_to": "2026-04-02"
},
"missing_required_filters": [],
"selected_recipe": "address_document_type_and_account_section_profile_v1",
"mcp_call_status_legacy": "matched_non_empty",
"account_scope_mode": "preferred",
"account_scope_fallback_applied": false,
"anchor_type": "unknown",
"anchor_value_raw": null,
"anchor_value_resolved": null,
"resolver_confidence": "low",
"ambiguity_count": 0,
"match_failure_stage": "none",
"match_failure_reason": null,
"mcp_call_status": "matched_non_empty",
"rows_fetched": 147,
"raw_rows_received": 147,
"rows_after_account_scope": 147,
"rows_after_recipe_filter": 147,
"rows_materialized": 147,
"rows_matched": 147,
"raw_row_keys_sample": [
"Период",
"Регистратор",
"СчетДт",
"СчетКт",
"Сумма",
"Period",
"Registrator",
"AccountDt",
"Amount"
],
"materialization_drop_reason": "none",
"account_token_raw": null,
"account_token_normalized": null,
"account_scope_fields_checked": [
"account_dt",
"account_kt",
"registrator",
"analytics"
],
"account_scope_match_strategy": "account_code_regex_plus_alias_map_v1",
"account_scope_drop_reason": "not_applicable",
"runtime_readiness": "LIVE_QUERYABLE_WITH_LIMITS",
"limited_reason_category": null,
"response_type": "FACTUAL_SUMMARY",
"execution_lane": "address_query",
"llm_decomposition_applied": false,
"llm_decomposition_attempted": true,
"llm_provider_used": "local",
"llm_decomposition_trace_id": "Wr7ac2wuNb5EXA",
"llm_decomposition_effective_message": "Какие типы документов используются чаще всего в базе?",
"llm_decomposition_reason": "normalized_fragment_same",
"fallback_rule_hit": null,
"sanitized_user_message": "какие типы документов используются чаще всего в базе?",
"tool_gate_decision": "run_address_lane",
"tool_gate_reason": "address_mode_classifier_detected",
"answer_structure_v11": null,
"investigation_state_snapshot": null,
"normalized": null,
"normalizer_output": {
"trace_id": "Wr7ac2wuNb5EXA",
"prompt_version": "normalizer_v2_0_2",
"applied": false,
"effective_message": "Какие типы документов используются чаще всего в базе?"
}
},
"error_code": null,
"error_message": null
},
{
"index": 5,
"id": "Q5",
"question": "Какие разделы учета наиболее заполнены и какие почти не используются?",
"session": null,
"session_id": "asst-2026-04-02_Address_General5_Live_Check_AfterFocusFix_04-q5",
"status_code": 200,
"ok": true,
"elapsed_ms": 975,
"reply_type": "factual",
"trace_id": "address-9KxpfWz3qt",
"assistant_reply": "Профиль типов документов и разделов учета собран (movement-based aggregate).\nСтрок агрегата: 147.\nНаиболее заполненные разделы учета (по операциям Дт+Кт):\n1. 90 (Продажи): 2973 (12.1%)\n2. 51 (Расчетные счета): 2967 (12.1%)\n3. 60 (Расчеты с поставщиками и подрядчиками): 2793 (11.4%)\n4. 44 (Расходы на продажу): 2422 (9.9%)\n5. 68 (Расчеты по налогам и сборам): 1553 (6.3%)\n6. 10 (Материалы): 1494 (6.1%)\n7. 19 (НДС по приобретенным ценностям): 1489 (6.1%)\n8. 91 (Прочие доходы и расходы): 1324 (5.4%)\n9. 41 (Товары): 1312 (5.3%)\n10. 76 (Расчеты с разными дебиторами и кредиторами): 1240 (5.0%)\nРазделы с минимальной активностью (среди использованных):\n1. 58 (Финансовые вложения): 2\n2. 81 (Собственные акции (доли)): 2\n3. 80 (Уставный капитал): 5\n4. 03: 6\n5. 04 (Нематериальные активы): 6\n6. 75 (Расчеты с учредителями): 16\n7. 55 (Специальные счета в банках): 18\n8. 84 (Нераспределенная прибыль (непокрытый убыток)): 20\n9. 26 (Общехозяйственные расходы): 51\n10. 71 (Расчеты с подотчетными лицами): 76",
"assistant_reply_first_line": "Профиль типов документов и разделов учета собран (movement-based aggregate).",
"expected_intent": "document_type_and_account_section_profile",
"actual_intent": "document_type_and_account_section_profile",
"intent_match": true,
"expected_mode": "address_query",
"actual_mode": "address_query",
"mode_match": true,
"expected_reply_type": null,
"reply_match": true,
"semantic_pass": true,
"route_pass": true,
"route_health": "ok_or_factual",
"strict_policy": "route",
"strict_pass": true,
"selected_recipe": "address_document_type_and_account_section_profile_v1",
"missing_required_filters": [],
"match_failure_stage": "none",
"match_failure_reason": null,
"rows_fetched": 147,
"rows_matched": 147,
"mcp_call_status": "matched_non_empty",
"limited_reason_category": null,
"llm_decomposition_applied": false,
"llm_decomposition_reason": "not_address_like",
"fallback_rule_hit": null,
"debug_payload": {
"trace_id": "address-9KxpfWz3qt",
"prompt_version": "address_query_runtime_v1",
"schema_version": "address_query_runtime_v1",
"fallback_type": "none",
"route_summary": null,
"fragments": [],
"requirements_extracted": [],
"coverage_report": {
"requirements_total": 0,
"requirements_covered": 0,
"requirements_uncovered": [],
"requirements_partially_covered": [],
"clarification_needed_for": [],
"out_of_scope_requirements": []
},
"routes": [],
"retrieval_status": [],
"retrieval_results": [],
"answer_grounding_check": {
"status": "grounded",
"route_subject_match": true,
"missing_requirements": [],
"reasons": [
"management_profile_signal_detected",
"shape_not_detected",
"document_type_and_account_section_profile_signal_detected"
],
"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": "document_type_and_account_section_profile",
"detected_intent_confidence": "high",
"extracted_filters": {
"sort": "period_desc",
"period_to": "2026-04-02"
},
"missing_required_filters": [],
"selected_recipe": "address_document_type_and_account_section_profile_v1",
"mcp_call_status_legacy": "matched_non_empty",
"account_scope_mode": "preferred",
"account_scope_fallback_applied": false,
"anchor_type": "unknown",
"anchor_value_raw": null,
"anchor_value_resolved": null,
"resolver_confidence": "low",
"ambiguity_count": 0,
"match_failure_stage": "none",
"match_failure_reason": null,
"mcp_call_status": "matched_non_empty",
"rows_fetched": 147,
"raw_rows_received": 147,
"rows_after_account_scope": 147,
"rows_after_recipe_filter": 147,
"rows_materialized": 147,
"rows_matched": 147,
"raw_row_keys_sample": [
"Период",
"Регистратор",
"СчетДт",
"СчетКт",
"Сумма",
"Period",
"Registrator",
"AccountDt",
"Amount"
],
"materialization_drop_reason": "none",
"account_token_raw": null,
"account_token_normalized": null,
"account_scope_fields_checked": [
"account_dt",
"account_kt",
"registrator",
"analytics"
],
"account_scope_match_strategy": "account_code_regex_plus_alias_map_v1",
"account_scope_drop_reason": "not_applicable",
"runtime_readiness": "LIVE_QUERYABLE_WITH_LIMITS",
"limited_reason_category": null,
"response_type": "FACTUAL_SUMMARY",
"execution_lane": "address_query",
"llm_decomposition_applied": false,
"llm_decomposition_attempted": false,
"llm_provider_used": "local",
"llm_decomposition_trace_id": null,
"llm_decomposition_effective_message": "Какие разделы учета наиболее заполнены и какие почти не используются?",
"llm_decomposition_reason": "not_address_like",
"fallback_rule_hit": null,
"sanitized_user_message": "какие разделы учета наиболее заполнены и какие почти не используются?",
"tool_gate_decision": "run_address_lane",
"tool_gate_reason": "address_mode_classifier_detected",
"answer_structure_v11": null,
"investigation_state_snapshot": null,
"normalized": null,
"normalizer_output": null
},
"error_code": null,
"error_message": null
}
]
}

View File

@ -0,0 +1,9 @@
# Response Audit: 2026-04-02_Address_General5_Live_Check_AfterFocusFix_04
| id | strict | route_health | reply_type | intent | limited_reason | question | assistant_first_line |
|---|---|---|---|---|---|---|---|
| Q1 | True | ok_or_factual | factual | period_coverage_profile | None | За какие годы в базе есть данные? | Профиль периодов базы собран (movement-based aggregate). |
| Q2 | True | ok_or_factual | factual | period_coverage_profile | None | Какой год самый активный по количеству документов? | Профиль периодов базы собран (movement-based aggregate). |
| Q3 | True | ok_or_factual | factual | period_coverage_profile | None | Какой месяц самый активный по количеству операций? | Профиль периодов базы собран (movement-based aggregate). |
| Q4 | True | ok_or_factual | factual | document_type_and_account_section_profile | None | Какие типы документов используются чаще всего в базе? | Профиль типов документов и разделов учета собран (movement-based aggregate). |
| Q5 | True | ok_or_factual | factual | document_type_and_account_section_profile | None | Какие разделы учета наиболее заполнены и какие почти не используются? | Профиль типов документов и разделов учета собран (movement-based aggregate). |

View File

@ -0,0 +1,45 @@
{
"run_id": "2026-04-02_Address_General5_Live_Check_AfterFocusFix_04",
"generated_at": "2026-04-02T20:11:30",
"source_questions_file": "X:\\1C\\NDC_1C\\docs\\ADDRESS\\question_sets\\temp_general5_live_check_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": 5,
"ok_200_count": 5,
"semantic_pass_count": 5,
"semantic_pass_rate": 1.0,
"route_pass_count": 5,
"route_pass_rate": 1.0,
"strict_pass_count": 5,
"strict_pass_rate": 1.0,
"factual_count": 5,
"partial_coverage_count": 0,
"clarification_required_count": 0,
"http_error_count": 0,
"llm_decomposition_applied_count": 0,
"avg_elapsed_ms": 2712.4
},
"distributions": {
"reply_type": {
"factual": 5
},
"actual_intent": {
"period_coverage_profile": 3,
"document_type_and_account_section_profile": 2
},
"actual_mode": {
"address_query": 5
},
"mcp_call_status": {
"matched_non_empty": 5
},
"limited_reason_category": {},
"route_health": {
"ok_or_factual": 5
}
}
}

View File

@ -0,0 +1,28 @@
# 2026-04-02_Address_General5_Live_Check_AfterNextPack
Generated at: 2026-04-02T21:06:53
Questions file: X:\1C\NDC_1C\docs\ADDRESS\question_sets\temp_general5_live_check_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: factual
## Totals
- questions_total: 5
- ok_200_count: 5
- semantic_pass_count: 5
- semantic_pass_rate: 1.0
- route_pass_count: 5
- route_pass_rate: 1.0
- strict_pass_count: 5
- strict_pass_rate: 1.0
- factual_count: 5
- partial_coverage_count: 0
- clarification_required_count: 0
- http_error_count: 0
- llm_decomposition_applied_count: 0
- avg_elapsed_ms: 3653.8
## Files
- run_summary.json
- full_live_results.json
- failures_only.json

View File

@ -0,0 +1,769 @@
{
"run_id": "2026-04-02_Address_General5_Live_Check_AfterNextPack",
"generated_at": "2026-04-02T21:06:53",
"summary": {
"run_id": "2026-04-02_Address_General5_Live_Check_AfterNextPack",
"generated_at": "2026-04-02T21:06:53",
"source_questions_file": "X:\\1C\\NDC_1C\\docs\\ADDRESS\\question_sets\\temp_general5_live_check_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": "factual",
"totals": {
"questions_total": 5,
"ok_200_count": 5,
"semantic_pass_count": 5,
"semantic_pass_rate": 1.0,
"route_pass_count": 5,
"route_pass_rate": 1.0,
"strict_pass_count": 5,
"strict_pass_rate": 1.0,
"factual_count": 5,
"partial_coverage_count": 0,
"clarification_required_count": 0,
"http_error_count": 0,
"llm_decomposition_applied_count": 0,
"avg_elapsed_ms": 3653.8
},
"distributions": {
"reply_type": {
"factual": 5
},
"actual_intent": {
"period_coverage_profile": 3,
"document_type_and_account_section_profile": 2
},
"actual_mode": {
"address_query": 5
},
"mcp_call_status": {
"matched_non_empty": 5
},
"limited_reason_category": {},
"route_health": {
"ok_or_factual": 5
}
}
},
"rows": [
{
"index": 1,
"id": "Q1",
"question": "За какие годы в базе есть данные?",
"session": null,
"session_id": "asst-2026-04-02_Address_General5_Live_Check_AfterNextPack-q1",
"status_code": 200,
"ok": true,
"elapsed_ms": 905,
"reply_type": "factual",
"trace_id": "address-8J2hUefXpX",
"assistant_reply": "Профиль периодов базы собран (movement-based aggregate).\nСтрок агрегата: 134.\nОперационный период с выраженной активностью: 2014..2022.\nНизкоактивный хвост (единичные записи): 2023, 2025, 2026.\nПолный технический диапазон дат: 2014-05-27T12:00:00Z.. 2026-03-31T00:00:00Z.",
"assistant_reply_first_line": "Профиль периодов базы собран (movement-based aggregate).",
"expected_intent": "period_coverage_profile",
"actual_intent": "period_coverage_profile",
"intent_match": true,
"expected_mode": "address_query",
"actual_mode": "address_query",
"mode_match": true,
"expected_reply_type": null,
"reply_match": true,
"semantic_pass": true,
"route_pass": true,
"route_health": "ok_or_factual",
"strict_policy": "factual",
"strict_pass": true,
"selected_recipe": "address_period_coverage_profile_v1",
"missing_required_filters": [],
"match_failure_stage": "none",
"match_failure_reason": null,
"rows_fetched": 134,
"rows_matched": 134,
"mcp_call_status": "matched_non_empty",
"limited_reason_category": null,
"llm_decomposition_applied": false,
"llm_decomposition_reason": "not_address_like",
"fallback_rule_hit": null,
"debug_payload": {
"trace_id": "address-8J2hUefXpX",
"prompt_version": "address_query_runtime_v1",
"schema_version": "address_query_runtime_v1",
"fallback_type": "none",
"route_summary": null,
"fragments": [],
"requirements_extracted": [],
"coverage_report": {
"requirements_total": 0,
"requirements_covered": 0,
"requirements_uncovered": [],
"requirements_partially_covered": [],
"clarification_needed_for": [],
"out_of_scope_requirements": []
},
"routes": [],
"retrieval_status": [],
"retrieval_results": [],
"answer_grounding_check": {
"status": "grounded",
"route_subject_match": true,
"missing_requirements": [],
"reasons": [
"management_profile_signal_detected",
"shape_not_detected",
"period_coverage_profile_signal_detected"
],
"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": "period_coverage_profile",
"detected_intent_confidence": "high",
"extracted_filters": {
"sort": "period_desc",
"period_to": "2026-04-02"
},
"missing_required_filters": [],
"selected_recipe": "address_period_coverage_profile_v1",
"mcp_call_status_legacy": "matched_non_empty",
"account_scope_mode": "preferred",
"account_scope_fallback_applied": false,
"anchor_type": "unknown",
"anchor_value_raw": null,
"anchor_value_resolved": null,
"resolver_confidence": "low",
"ambiguity_count": 0,
"match_failure_stage": "none",
"match_failure_reason": null,
"mcp_call_status": "matched_non_empty",
"rows_fetched": 134,
"raw_rows_received": 134,
"rows_after_account_scope": 134,
"rows_after_recipe_filter": 134,
"rows_materialized": 134,
"rows_matched": 134,
"raw_row_keys_sample": [
"Период",
"Регистратор",
"СчетДт",
"СчетКт",
"Сумма",
"Period",
"Registrator",
"Amount"
],
"materialization_drop_reason": "none",
"account_token_raw": null,
"account_token_normalized": null,
"account_scope_fields_checked": [
"account_dt",
"account_kt",
"registrator",
"analytics"
],
"account_scope_match_strategy": "account_code_regex_plus_alias_map_v1",
"account_scope_drop_reason": "not_applicable",
"runtime_readiness": "LIVE_QUERYABLE_WITH_LIMITS",
"limited_reason_category": null,
"response_type": "FACTUAL_SUMMARY",
"execution_lane": "address_query",
"llm_decomposition_applied": false,
"llm_decomposition_attempted": false,
"llm_provider_used": "local",
"llm_decomposition_trace_id": null,
"llm_decomposition_effective_message": "За какие годы в базе есть данные?",
"llm_decomposition_reason": "not_address_like",
"fallback_rule_hit": null,
"sanitized_user_message": "за какие годы в базе есть данные?",
"tool_gate_decision": "run_address_lane",
"tool_gate_reason": "address_mode_classifier_detected",
"answer_structure_v11": null,
"investigation_state_snapshot": null,
"normalized": null,
"normalizer_output": null
},
"error_code": null,
"error_message": null
},
{
"index": 2,
"id": "Q2",
"question": "Какой год самый активный по количеству документов?",
"session": null,
"session_id": "asst-2026-04-02_Address_General5_Live_Check_AfterNextPack-q2",
"status_code": 200,
"ok": true,
"elapsed_ms": 7055,
"reply_type": "factual",
"trace_id": "address-B_bb26I1tB",
"assistant_reply": "Профиль периодов базы собран (movement-based aggregate).\nСтрок агрегата: 134.\nСамый активный год по документам: 2019 (1004).\n1. 2019: 1004\n2. 2018: 703\n3. 2015: 671\n4. 2016: 577\n5. 2020: 536",
"assistant_reply_first_line": "Профиль периодов базы собран (movement-based aggregate).",
"expected_intent": "period_coverage_profile",
"actual_intent": "period_coverage_profile",
"intent_match": true,
"expected_mode": "address_query",
"actual_mode": "address_query",
"mode_match": true,
"expected_reply_type": null,
"reply_match": true,
"semantic_pass": true,
"route_pass": true,
"route_health": "ok_or_factual",
"strict_policy": "factual",
"strict_pass": true,
"selected_recipe": "address_period_coverage_profile_v1",
"missing_required_filters": [],
"match_failure_stage": "none",
"match_failure_reason": null,
"rows_fetched": 134,
"rows_matched": 134,
"mcp_call_status": "matched_non_empty",
"limited_reason_category": null,
"llm_decomposition_applied": false,
"llm_decomposition_reason": "normalized_fragment_rejected_intent_conflict",
"fallback_rule_hit": null,
"debug_payload": {
"trace_id": "address-B_bb26I1tB",
"prompt_version": "address_query_runtime_v1",
"schema_version": "address_query_runtime_v1",
"fallback_type": "none",
"route_summary": null,
"fragments": [],
"requirements_extracted": [],
"coverage_report": {
"requirements_total": 0,
"requirements_covered": 0,
"requirements_uncovered": [],
"requirements_partially_covered": [],
"clarification_needed_for": [],
"out_of_scope_requirements": []
},
"routes": [],
"retrieval_status": [],
"retrieval_results": [],
"answer_grounding_check": {
"status": "grounded",
"route_subject_match": true,
"missing_requirements": [],
"reasons": [
"management_profile_signal_detected",
"document_list_signal_detected",
"period_coverage_profile_signal_detected"
],
"why_included_summary": [],
"selection_reason_summary": []
},
"dropped_intent_segments": [],
"detected_mode": "address_query",
"detected_mode_confidence": "medium",
"query_shape": "DOCUMENT_LIST",
"query_shape_confidence": "medium",
"detected_intent": "period_coverage_profile",
"detected_intent_confidence": "high",
"extracted_filters": {
"sort": "period_desc",
"period_to": "2026-04-02"
},
"missing_required_filters": [],
"selected_recipe": "address_period_coverage_profile_v1",
"mcp_call_status_legacy": "matched_non_empty",
"account_scope_mode": "preferred",
"account_scope_fallback_applied": false,
"anchor_type": "unknown",
"anchor_value_raw": null,
"anchor_value_resolved": null,
"resolver_confidence": "low",
"ambiguity_count": 0,
"match_failure_stage": "none",
"match_failure_reason": null,
"mcp_call_status": "matched_non_empty",
"rows_fetched": 134,
"raw_rows_received": 134,
"rows_after_account_scope": 134,
"rows_after_recipe_filter": 134,
"rows_materialized": 134,
"rows_matched": 134,
"raw_row_keys_sample": [
"Период",
"Регистратор",
"СчетДт",
"СчетКт",
"Сумма",
"Period",
"Registrator",
"Amount"
],
"materialization_drop_reason": "none",
"account_token_raw": null,
"account_token_normalized": null,
"account_scope_fields_checked": [
"account_dt",
"account_kt",
"registrator",
"analytics"
],
"account_scope_match_strategy": "account_code_regex_plus_alias_map_v1",
"account_scope_drop_reason": "not_applicable",
"runtime_readiness": "LIVE_QUERYABLE_WITH_LIMITS",
"limited_reason_category": null,
"response_type": "FACTUAL_SUMMARY",
"execution_lane": "address_query",
"llm_decomposition_applied": false,
"llm_decomposition_attempted": true,
"llm_provider_used": "local",
"llm_decomposition_trace_id": "yaGqRP2q_a36DM",
"llm_decomposition_effective_message": "Какой год самый активный по количеству документов?",
"llm_decomposition_reason": "normalized_fragment_rejected_intent_conflict",
"fallback_rule_hit": null,
"sanitized_user_message": "какой год самый активный по количеству документов?",
"tool_gate_decision": "run_address_lane",
"tool_gate_reason": "address_mode_classifier_detected",
"answer_structure_v11": null,
"investigation_state_snapshot": null,
"normalized": null,
"normalizer_output": {
"trace_id": "yaGqRP2q_a36DM",
"prompt_version": "normalizer_v2_0_2",
"applied": false,
"effective_message": "Какой год самый активный по количеству документов?"
}
},
"error_code": null,
"error_message": null
},
{
"index": 3,
"id": "Q3",
"question": "Какой месяц самый активный по количеству операций?",
"session": null,
"session_id": "asst-2026-04-02_Address_General5_Live_Check_AfterNextPack-q3",
"status_code": 200,
"ok": true,
"elapsed_ms": 1998,
"reply_type": "factual",
"trace_id": "address-2qu73I71yI",
"assistant_reply": "Профиль периодов базы собран (movement-based aggregate).\nСтрок агрегата: 134.\nСамый активный месяц по операциям: 2015-02 (1249).\n1. 2015-02: 1249\n2. 2015-01: 924\n3. 2018-08: 854\n4. 2019-05: 536\n5. 2017-12: 503",
"assistant_reply_first_line": "Профиль периодов базы собран (movement-based aggregate).",
"expected_intent": "period_coverage_profile",
"actual_intent": "period_coverage_profile",
"intent_match": true,
"expected_mode": "address_query",
"actual_mode": "address_query",
"mode_match": true,
"expected_reply_type": null,
"reply_match": true,
"semantic_pass": true,
"route_pass": true,
"route_health": "ok_or_factual",
"strict_policy": "factual",
"strict_pass": true,
"selected_recipe": "address_period_coverage_profile_v1",
"missing_required_filters": [],
"match_failure_stage": "none",
"match_failure_reason": null,
"rows_fetched": 134,
"rows_matched": 134,
"mcp_call_status": "matched_non_empty",
"limited_reason_category": null,
"llm_decomposition_applied": false,
"llm_decomposition_reason": "not_address_like",
"fallback_rule_hit": null,
"debug_payload": {
"trace_id": "address-2qu73I71yI",
"prompt_version": "address_query_runtime_v1",
"schema_version": "address_query_runtime_v1",
"fallback_type": "none",
"route_summary": null,
"fragments": [],
"requirements_extracted": [],
"coverage_report": {
"requirements_total": 0,
"requirements_covered": 0,
"requirements_uncovered": [],
"requirements_partially_covered": [],
"clarification_needed_for": [],
"out_of_scope_requirements": []
},
"routes": [],
"retrieval_status": [],
"retrieval_results": [],
"answer_grounding_check": {
"status": "grounded",
"route_subject_match": true,
"missing_requirements": [],
"reasons": [
"management_profile_signal_detected",
"shape_not_detected",
"period_coverage_profile_signal_detected"
],
"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": "period_coverage_profile",
"detected_intent_confidence": "high",
"extracted_filters": {
"sort": "period_desc",
"period_to": "2026-04-02"
},
"missing_required_filters": [],
"selected_recipe": "address_period_coverage_profile_v1",
"mcp_call_status_legacy": "matched_non_empty",
"account_scope_mode": "preferred",
"account_scope_fallback_applied": false,
"anchor_type": "unknown",
"anchor_value_raw": null,
"anchor_value_resolved": null,
"resolver_confidence": "low",
"ambiguity_count": 0,
"match_failure_stage": "none",
"match_failure_reason": null,
"mcp_call_status": "matched_non_empty",
"rows_fetched": 134,
"raw_rows_received": 134,
"rows_after_account_scope": 134,
"rows_after_recipe_filter": 134,
"rows_materialized": 134,
"rows_matched": 134,
"raw_row_keys_sample": [
"Период",
"Регистратор",
"СчетДт",
"СчетКт",
"Сумма",
"Period",
"Registrator",
"Amount"
],
"materialization_drop_reason": "none",
"account_token_raw": null,
"account_token_normalized": null,
"account_scope_fields_checked": [
"account_dt",
"account_kt",
"registrator",
"analytics"
],
"account_scope_match_strategy": "account_code_regex_plus_alias_map_v1",
"account_scope_drop_reason": "not_applicable",
"runtime_readiness": "LIVE_QUERYABLE_WITH_LIMITS",
"limited_reason_category": null,
"response_type": "FACTUAL_SUMMARY",
"execution_lane": "address_query",
"llm_decomposition_applied": false,
"llm_decomposition_attempted": false,
"llm_provider_used": "local",
"llm_decomposition_trace_id": null,
"llm_decomposition_effective_message": "Какой месяц самый активный по количеству операций?",
"llm_decomposition_reason": "not_address_like",
"fallback_rule_hit": null,
"sanitized_user_message": "какой месяц самый активный по количеству операций?",
"tool_gate_decision": "run_address_lane",
"tool_gate_reason": "address_mode_classifier_detected",
"answer_structure_v11": null,
"investigation_state_snapshot": null,
"normalized": null,
"normalizer_output": null
},
"error_code": null,
"error_message": null
},
{
"index": 4,
"id": "Q4",
"question": "Какие типы документов используются чаще всего в базе?",
"session": null,
"session_id": "asst-2026-04-02_Address_General5_Live_Check_AfterNextPack-q4",
"status_code": 200,
"ok": true,
"elapsed_ms": 7349,
"reply_type": "factual",
"trace_id": "address-7Vm8W8ioP-",
"assistant_reply": "Профиль типов документов и разделов учета собран (movement-based aggregate).\nСтрок агрегата: 147.\nТоп типов документов (по числу уникальных регистраторов):\n1. Списание с расчетного счета: 2352 (52.6%)\n2. Поступление товаров и услуг: 486 (10.9%)\n3. Регламентная операция: 414 (9.3%)\n4. Поступление на расчетный счет: 323 (7.2%)\n5. Счет-фактура полученный: 261 (5.8%)\n6. Операция (бухгалтерский и налоговый учет): 147 (3.3%)\n7. Реализация товаров и услуг: 123 (2.8%)\n8. Отражение зарплаты в регламентированном учете: 87 (1.9%)\n9. Приходный кассовый ордер: 76 (1.7%)\n10. Расходный кассовый ордер: 73 (1.6%)",
"assistant_reply_first_line": "Профиль типов документов и разделов учета собран (movement-based aggregate).",
"expected_intent": "document_type_and_account_section_profile",
"actual_intent": "document_type_and_account_section_profile",
"intent_match": true,
"expected_mode": "address_query",
"actual_mode": "address_query",
"mode_match": true,
"expected_reply_type": null,
"reply_match": true,
"semantic_pass": true,
"route_pass": true,
"route_health": "ok_or_factual",
"strict_policy": "factual",
"strict_pass": true,
"selected_recipe": "address_document_type_and_account_section_profile_v1",
"missing_required_filters": [],
"match_failure_stage": "none",
"match_failure_reason": null,
"rows_fetched": 147,
"rows_matched": 147,
"mcp_call_status": "matched_non_empty",
"limited_reason_category": null,
"llm_decomposition_applied": false,
"llm_decomposition_reason": "normalized_fragment_same",
"fallback_rule_hit": null,
"debug_payload": {
"trace_id": "address-7Vm8W8ioP-",
"prompt_version": "address_query_runtime_v1",
"schema_version": "address_query_runtime_v1",
"fallback_type": "none",
"route_summary": null,
"fragments": [],
"requirements_extracted": [],
"coverage_report": {
"requirements_total": 0,
"requirements_covered": 0,
"requirements_uncovered": [],
"requirements_partially_covered": [],
"clarification_needed_for": [],
"out_of_scope_requirements": []
},
"routes": [],
"retrieval_status": [],
"retrieval_results": [],
"answer_grounding_check": {
"status": "grounded",
"route_subject_match": true,
"missing_requirements": [],
"reasons": [
"address_action_detected",
"address_entity_detected",
"document_list_signal_detected",
"document_type_and_account_section_profile_signal_detected"
],
"why_included_summary": [],
"selection_reason_summary": []
},
"dropped_intent_segments": [],
"detected_mode": "address_query",
"detected_mode_confidence": "high",
"query_shape": "DOCUMENT_LIST",
"query_shape_confidence": "medium",
"detected_intent": "document_type_and_account_section_profile",
"detected_intent_confidence": "high",
"extracted_filters": {
"sort": "period_desc",
"period_to": "2026-04-02"
},
"missing_required_filters": [],
"selected_recipe": "address_document_type_and_account_section_profile_v1",
"mcp_call_status_legacy": "matched_non_empty",
"account_scope_mode": "preferred",
"account_scope_fallback_applied": false,
"anchor_type": "unknown",
"anchor_value_raw": null,
"anchor_value_resolved": null,
"resolver_confidence": "low",
"ambiguity_count": 0,
"match_failure_stage": "none",
"match_failure_reason": null,
"mcp_call_status": "matched_non_empty",
"rows_fetched": 147,
"raw_rows_received": 147,
"rows_after_account_scope": 147,
"rows_after_recipe_filter": 147,
"rows_materialized": 147,
"rows_matched": 147,
"raw_row_keys_sample": [
"Период",
"Регистратор",
"СчетДт",
"СчетКт",
"Сумма",
"Period",
"Registrator",
"AccountDt",
"Amount"
],
"materialization_drop_reason": "none",
"account_token_raw": null,
"account_token_normalized": null,
"account_scope_fields_checked": [
"account_dt",
"account_kt",
"registrator",
"analytics"
],
"account_scope_match_strategy": "account_code_regex_plus_alias_map_v1",
"account_scope_drop_reason": "not_applicable",
"runtime_readiness": "LIVE_QUERYABLE_WITH_LIMITS",
"limited_reason_category": null,
"response_type": "FACTUAL_SUMMARY",
"execution_lane": "address_query",
"llm_decomposition_applied": false,
"llm_decomposition_attempted": true,
"llm_provider_used": "local",
"llm_decomposition_trace_id": "HD-Gzx7qj5iYfQ",
"llm_decomposition_effective_message": "Какие типы документов используются чаще всего в базе?",
"llm_decomposition_reason": "normalized_fragment_same",
"fallback_rule_hit": null,
"sanitized_user_message": "какие типы документов используются чаще всего в базе?",
"tool_gate_decision": "run_address_lane",
"tool_gate_reason": "address_mode_classifier_detected",
"answer_structure_v11": null,
"investigation_state_snapshot": null,
"normalized": null,
"normalizer_output": {
"trace_id": "HD-Gzx7qj5iYfQ",
"prompt_version": "normalizer_v2_0_2",
"applied": false,
"effective_message": "Какие типы документов используются чаще всего в базе?"
}
},
"error_code": null,
"error_message": null
},
{
"index": 5,
"id": "Q5",
"question": "Какие разделы учета наиболее заполнены и какие почти не используются?",
"session": null,
"session_id": "asst-2026-04-02_Address_General5_Live_Check_AfterNextPack-q5",
"status_code": 200,
"ok": true,
"elapsed_ms": 962,
"reply_type": "factual",
"trace_id": "address-TbMJKjcLPN",
"assistant_reply": "Профиль типов документов и разделов учета собран (movement-based aggregate).\nСтрок агрегата: 147.\nНаиболее заполненные разделы учета (по операциям Дт+Кт):\n1. 90 (Продажи): 2973 (12.1%)\n2. 51 (Расчетные счета): 2967 (12.1%)\n3. 60 (Расчеты с поставщиками и подрядчиками): 2793 (11.4%)\n4. 44 (Расходы на продажу): 2422 (9.9%)\n5. 68 (Расчеты по налогам и сборам): 1553 (6.3%)\n6. 10 (Материалы): 1494 (6.1%)\n7. 19 (НДС по приобретенным ценностям): 1489 (6.1%)\n8. 91 (Прочие доходы и расходы): 1324 (5.4%)\n9. 41 (Товары): 1312 (5.3%)\n10. 76 (Расчеты с разными дебиторами и кредиторами): 1240 (5.0%)\nРазделы с минимальной активностью (среди использованных):\n1. 58 (Финансовые вложения): 2\n2. 81 (Собственные акции (доли)): 2\n3. 80 (Уставный капитал): 5\n4. 03: 6\n5. 04 (Нематериальные активы): 6\n6. 75 (Расчеты с учредителями): 16\n7. 55 (Специальные счета в банках): 18\n8. 84 (Нераспределенная прибыль (непокрытый убыток)): 20\n9. 26 (Общехозяйственные расходы): 51\n10. 71 (Расчеты с подотчетными лицами): 76",
"assistant_reply_first_line": "Профиль типов документов и разделов учета собран (movement-based aggregate).",
"expected_intent": "document_type_and_account_section_profile",
"actual_intent": "document_type_and_account_section_profile",
"intent_match": true,
"expected_mode": "address_query",
"actual_mode": "address_query",
"mode_match": true,
"expected_reply_type": null,
"reply_match": true,
"semantic_pass": true,
"route_pass": true,
"route_health": "ok_or_factual",
"strict_policy": "factual",
"strict_pass": true,
"selected_recipe": "address_document_type_and_account_section_profile_v1",
"missing_required_filters": [],
"match_failure_stage": "none",
"match_failure_reason": null,
"rows_fetched": 147,
"rows_matched": 147,
"mcp_call_status": "matched_non_empty",
"limited_reason_category": null,
"llm_decomposition_applied": false,
"llm_decomposition_reason": "not_address_like",
"fallback_rule_hit": null,
"debug_payload": {
"trace_id": "address-TbMJKjcLPN",
"prompt_version": "address_query_runtime_v1",
"schema_version": "address_query_runtime_v1",
"fallback_type": "none",
"route_summary": null,
"fragments": [],
"requirements_extracted": [],
"coverage_report": {
"requirements_total": 0,
"requirements_covered": 0,
"requirements_uncovered": [],
"requirements_partially_covered": [],
"clarification_needed_for": [],
"out_of_scope_requirements": []
},
"routes": [],
"retrieval_status": [],
"retrieval_results": [],
"answer_grounding_check": {
"status": "grounded",
"route_subject_match": true,
"missing_requirements": [],
"reasons": [
"management_profile_signal_detected",
"shape_not_detected",
"document_type_and_account_section_profile_signal_detected"
],
"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": "document_type_and_account_section_profile",
"detected_intent_confidence": "high",
"extracted_filters": {
"sort": "period_desc",
"period_to": "2026-04-02"
},
"missing_required_filters": [],
"selected_recipe": "address_document_type_and_account_section_profile_v1",
"mcp_call_status_legacy": "matched_non_empty",
"account_scope_mode": "preferred",
"account_scope_fallback_applied": false,
"anchor_type": "unknown",
"anchor_value_raw": null,
"anchor_value_resolved": null,
"resolver_confidence": "low",
"ambiguity_count": 0,
"match_failure_stage": "none",
"match_failure_reason": null,
"mcp_call_status": "matched_non_empty",
"rows_fetched": 147,
"raw_rows_received": 147,
"rows_after_account_scope": 147,
"rows_after_recipe_filter": 147,
"rows_materialized": 147,
"rows_matched": 147,
"raw_row_keys_sample": [
"Период",
"Регистратор",
"СчетДт",
"СчетКт",
"Сумма",
"Period",
"Registrator",
"AccountDt",
"Amount"
],
"materialization_drop_reason": "none",
"account_token_raw": null,
"account_token_normalized": null,
"account_scope_fields_checked": [
"account_dt",
"account_kt",
"registrator",
"analytics"
],
"account_scope_match_strategy": "account_code_regex_plus_alias_map_v1",
"account_scope_drop_reason": "not_applicable",
"runtime_readiness": "LIVE_QUERYABLE_WITH_LIMITS",
"limited_reason_category": null,
"response_type": "FACTUAL_SUMMARY",
"execution_lane": "address_query",
"llm_decomposition_applied": false,
"llm_decomposition_attempted": false,
"llm_provider_used": "local",
"llm_decomposition_trace_id": null,
"llm_decomposition_effective_message": "Какие разделы учета наиболее заполнены и какие почти не используются?",
"llm_decomposition_reason": "not_address_like",
"fallback_rule_hit": null,
"sanitized_user_message": "какие разделы учета наиболее заполнены и какие почти не используются?",
"tool_gate_decision": "run_address_lane",
"tool_gate_reason": "address_mode_classifier_detected",
"answer_structure_v11": null,
"investigation_state_snapshot": null,
"normalized": null,
"normalizer_output": null
},
"error_code": null,
"error_message": null
}
]
}

View File

@ -0,0 +1,9 @@
# Response Audit: 2026-04-02_Address_General5_Live_Check_AfterNextPack
| id | strict | route_health | reply_type | intent | limited_reason | question | assistant_first_line |
|---|---|---|---|---|---|---|---|
| Q1 | True | ok_or_factual | factual | period_coverage_profile | None | За какие годы в базе есть данные? | Профиль периодов базы собран (movement-based aggregate). |
| Q2 | True | ok_or_factual | factual | period_coverage_profile | None | Какой год самый активный по количеству документов? | Профиль периодов базы собран (movement-based aggregate). |
| Q3 | True | ok_or_factual | factual | period_coverage_profile | None | Какой месяц самый активный по количеству операций? | Профиль периодов базы собран (movement-based aggregate). |
| Q4 | True | ok_or_factual | factual | document_type_and_account_section_profile | None | Какие типы документов используются чаще всего в базе? | Профиль типов документов и разделов учета собран (movement-based aggregate). |
| Q5 | True | ok_or_factual | factual | document_type_and_account_section_profile | None | Какие разделы учета наиболее заполнены и какие почти не используются? | Профиль типов документов и разделов учета собран (movement-based aggregate). |

View File

@ -0,0 +1,45 @@
{
"run_id": "2026-04-02_Address_General5_Live_Check_AfterNextPack",
"generated_at": "2026-04-02T21:06:53",
"source_questions_file": "X:\\1C\\NDC_1C\\docs\\ADDRESS\\question_sets\\temp_general5_live_check_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": "factual",
"totals": {
"questions_total": 5,
"ok_200_count": 5,
"semantic_pass_count": 5,
"semantic_pass_rate": 1.0,
"route_pass_count": 5,
"route_pass_rate": 1.0,
"strict_pass_count": 5,
"strict_pass_rate": 1.0,
"factual_count": 5,
"partial_coverage_count": 0,
"clarification_required_count": 0,
"http_error_count": 0,
"llm_decomposition_applied_count": 0,
"avg_elapsed_ms": 3653.8
},
"distributions": {
"reply_type": {
"factual": 5
},
"actual_intent": {
"period_coverage_profile": 3,
"document_type_and_account_section_profile": 2
},
"actual_mode": {
"address_query": 5
},
"mcp_call_status": {
"matched_non_empty": 5
},
"limited_reason_category": {},
"route_health": {
"ok_or_factual": 5
}
}
}

View File

@ -0,0 +1,28 @@
# 2026-04-02_Address_General5_Live_Check_AfterReverseFix
Generated at: 2026-04-02T20:52:16
Questions file: X:\1C\NDC_1C\docs\ADDRESS\question_sets\temp_general5_live_check_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: factual
## Totals
- questions_total: 5
- ok_200_count: 5
- semantic_pass_count: 5
- semantic_pass_rate: 1.0
- route_pass_count: 5
- route_pass_rate: 1.0
- strict_pass_count: 5
- strict_pass_rate: 1.0
- factual_count: 5
- partial_coverage_count: 0
- clarification_required_count: 0
- http_error_count: 0
- llm_decomposition_applied_count: 0
- avg_elapsed_ms: 2670.4
## Files
- run_summary.json
- full_live_results.json
- failures_only.json

View File

@ -0,0 +1,769 @@
{
"run_id": "2026-04-02_Address_General5_Live_Check_AfterReverseFix",
"generated_at": "2026-04-02T20:52:16",
"summary": {
"run_id": "2026-04-02_Address_General5_Live_Check_AfterReverseFix",
"generated_at": "2026-04-02T20:52:16",
"source_questions_file": "X:\\1C\\NDC_1C\\docs\\ADDRESS\\question_sets\\temp_general5_live_check_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": "factual",
"totals": {
"questions_total": 5,
"ok_200_count": 5,
"semantic_pass_count": 5,
"semantic_pass_rate": 1.0,
"route_pass_count": 5,
"route_pass_rate": 1.0,
"strict_pass_count": 5,
"strict_pass_rate": 1.0,
"factual_count": 5,
"partial_coverage_count": 0,
"clarification_required_count": 0,
"http_error_count": 0,
"llm_decomposition_applied_count": 0,
"avg_elapsed_ms": 2670.4
},
"distributions": {
"reply_type": {
"factual": 5
},
"actual_intent": {
"period_coverage_profile": 3,
"document_type_and_account_section_profile": 2
},
"actual_mode": {
"address_query": 5
},
"mcp_call_status": {
"matched_non_empty": 5
},
"limited_reason_category": {},
"route_health": {
"ok_or_factual": 5
}
}
},
"rows": [
{
"index": 1,
"id": "Q1",
"question": "За какие годы в базе есть данные?",
"session": null,
"session_id": "asst-2026-04-02_Address_General5_Live_Check_AfterReverseFix-q1",
"status_code": 200,
"ok": true,
"elapsed_ms": 1112,
"reply_type": "factual",
"trace_id": "address-gt4_phWphT",
"assistant_reply": "Профиль периодов базы собран (movement-based aggregate).\nСтрок агрегата: 134.\nОперационный период с выраженной активностью: 2014..2022.\nНизкоактивный хвост (единичные записи): 2023, 2025, 2026.\nПолный технический диапазон дат: 2014-05-27T12:00:00Z.. 2026-03-31T00:00:00Z.",
"assistant_reply_first_line": "Профиль периодов базы собран (movement-based aggregate).",
"expected_intent": "period_coverage_profile",
"actual_intent": "period_coverage_profile",
"intent_match": true,
"expected_mode": "address_query",
"actual_mode": "address_query",
"mode_match": true,
"expected_reply_type": null,
"reply_match": true,
"semantic_pass": true,
"route_pass": true,
"route_health": "ok_or_factual",
"strict_policy": "factual",
"strict_pass": true,
"selected_recipe": "address_period_coverage_profile_v1",
"missing_required_filters": [],
"match_failure_stage": "none",
"match_failure_reason": null,
"rows_fetched": 134,
"rows_matched": 134,
"mcp_call_status": "matched_non_empty",
"limited_reason_category": null,
"llm_decomposition_applied": false,
"llm_decomposition_reason": "not_address_like",
"fallback_rule_hit": null,
"debug_payload": {
"trace_id": "address-gt4_phWphT",
"prompt_version": "address_query_runtime_v1",
"schema_version": "address_query_runtime_v1",
"fallback_type": "none",
"route_summary": null,
"fragments": [],
"requirements_extracted": [],
"coverage_report": {
"requirements_total": 0,
"requirements_covered": 0,
"requirements_uncovered": [],
"requirements_partially_covered": [],
"clarification_needed_for": [],
"out_of_scope_requirements": []
},
"routes": [],
"retrieval_status": [],
"retrieval_results": [],
"answer_grounding_check": {
"status": "grounded",
"route_subject_match": true,
"missing_requirements": [],
"reasons": [
"management_profile_signal_detected",
"shape_not_detected",
"period_coverage_profile_signal_detected"
],
"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": "period_coverage_profile",
"detected_intent_confidence": "high",
"extracted_filters": {
"sort": "period_desc",
"period_to": "2026-04-02"
},
"missing_required_filters": [],
"selected_recipe": "address_period_coverage_profile_v1",
"mcp_call_status_legacy": "matched_non_empty",
"account_scope_mode": "preferred",
"account_scope_fallback_applied": false,
"anchor_type": "unknown",
"anchor_value_raw": null,
"anchor_value_resolved": null,
"resolver_confidence": "low",
"ambiguity_count": 0,
"match_failure_stage": "none",
"match_failure_reason": null,
"mcp_call_status": "matched_non_empty",
"rows_fetched": 134,
"raw_rows_received": 134,
"rows_after_account_scope": 134,
"rows_after_recipe_filter": 134,
"rows_materialized": 134,
"rows_matched": 134,
"raw_row_keys_sample": [
"Период",
"Регистратор",
"СчетДт",
"СчетКт",
"Сумма",
"Period",
"Registrator",
"Amount"
],
"materialization_drop_reason": "none",
"account_token_raw": null,
"account_token_normalized": null,
"account_scope_fields_checked": [
"account_dt",
"account_kt",
"registrator",
"analytics"
],
"account_scope_match_strategy": "account_code_regex_plus_alias_map_v1",
"account_scope_drop_reason": "not_applicable",
"runtime_readiness": "LIVE_QUERYABLE_WITH_LIMITS",
"limited_reason_category": null,
"response_type": "FACTUAL_SUMMARY",
"execution_lane": "address_query",
"llm_decomposition_applied": false,
"llm_decomposition_attempted": false,
"llm_provider_used": "local",
"llm_decomposition_trace_id": null,
"llm_decomposition_effective_message": "За какие годы в базе есть данные?",
"llm_decomposition_reason": "not_address_like",
"fallback_rule_hit": null,
"sanitized_user_message": "за какие годы в базе есть данные?",
"tool_gate_decision": "run_address_lane",
"tool_gate_reason": "address_mode_classifier_detected",
"answer_structure_v11": null,
"investigation_state_snapshot": null,
"normalized": null,
"normalizer_output": null
},
"error_code": null,
"error_message": null
},
{
"index": 2,
"id": "Q2",
"question": "Какой год самый активный по количеству документов?",
"session": null,
"session_id": "asst-2026-04-02_Address_General5_Live_Check_AfterReverseFix-q2",
"status_code": 200,
"ok": true,
"elapsed_ms": 5044,
"reply_type": "factual",
"trace_id": "address-VdsAJmYHgW",
"assistant_reply": "Профиль периодов базы собран (movement-based aggregate).\nСтрок агрегата: 134.\nСамый активный год по документам: 2019 (1004).\n1. 2019: 1004\n2. 2018: 703\n3. 2015: 671\n4. 2016: 577\n5. 2020: 536",
"assistant_reply_first_line": "Профиль периодов базы собран (movement-based aggregate).",
"expected_intent": "period_coverage_profile",
"actual_intent": "period_coverage_profile",
"intent_match": true,
"expected_mode": "address_query",
"actual_mode": "address_query",
"mode_match": true,
"expected_reply_type": null,
"reply_match": true,
"semantic_pass": true,
"route_pass": true,
"route_health": "ok_or_factual",
"strict_policy": "factual",
"strict_pass": true,
"selected_recipe": "address_period_coverage_profile_v1",
"missing_required_filters": [],
"match_failure_stage": "none",
"match_failure_reason": null,
"rows_fetched": 134,
"rows_matched": 134,
"mcp_call_status": "matched_non_empty",
"limited_reason_category": null,
"llm_decomposition_applied": false,
"llm_decomposition_reason": "normalized_fragment_rejected_intent_conflict",
"fallback_rule_hit": null,
"debug_payload": {
"trace_id": "address-VdsAJmYHgW",
"prompt_version": "address_query_runtime_v1",
"schema_version": "address_query_runtime_v1",
"fallback_type": "none",
"route_summary": null,
"fragments": [],
"requirements_extracted": [],
"coverage_report": {
"requirements_total": 0,
"requirements_covered": 0,
"requirements_uncovered": [],
"requirements_partially_covered": [],
"clarification_needed_for": [],
"out_of_scope_requirements": []
},
"routes": [],
"retrieval_status": [],
"retrieval_results": [],
"answer_grounding_check": {
"status": "grounded",
"route_subject_match": true,
"missing_requirements": [],
"reasons": [
"management_profile_signal_detected",
"document_list_signal_detected",
"period_coverage_profile_signal_detected"
],
"why_included_summary": [],
"selection_reason_summary": []
},
"dropped_intent_segments": [],
"detected_mode": "address_query",
"detected_mode_confidence": "medium",
"query_shape": "DOCUMENT_LIST",
"query_shape_confidence": "medium",
"detected_intent": "period_coverage_profile",
"detected_intent_confidence": "high",
"extracted_filters": {
"sort": "period_desc",
"period_to": "2026-04-02"
},
"missing_required_filters": [],
"selected_recipe": "address_period_coverage_profile_v1",
"mcp_call_status_legacy": "matched_non_empty",
"account_scope_mode": "preferred",
"account_scope_fallback_applied": false,
"anchor_type": "unknown",
"anchor_value_raw": null,
"anchor_value_resolved": null,
"resolver_confidence": "low",
"ambiguity_count": 0,
"match_failure_stage": "none",
"match_failure_reason": null,
"mcp_call_status": "matched_non_empty",
"rows_fetched": 134,
"raw_rows_received": 134,
"rows_after_account_scope": 134,
"rows_after_recipe_filter": 134,
"rows_materialized": 134,
"rows_matched": 134,
"raw_row_keys_sample": [
"Период",
"Регистратор",
"СчетДт",
"СчетКт",
"Сумма",
"Period",
"Registrator",
"Amount"
],
"materialization_drop_reason": "none",
"account_token_raw": null,
"account_token_normalized": null,
"account_scope_fields_checked": [
"account_dt",
"account_kt",
"registrator",
"analytics"
],
"account_scope_match_strategy": "account_code_regex_plus_alias_map_v1",
"account_scope_drop_reason": "not_applicable",
"runtime_readiness": "LIVE_QUERYABLE_WITH_LIMITS",
"limited_reason_category": null,
"response_type": "FACTUAL_SUMMARY",
"execution_lane": "address_query",
"llm_decomposition_applied": false,
"llm_decomposition_attempted": true,
"llm_provider_used": "local",
"llm_decomposition_trace_id": "XjOmBTjLbXP2n7",
"llm_decomposition_effective_message": "Какой год самый активный по количеству документов?",
"llm_decomposition_reason": "normalized_fragment_rejected_intent_conflict",
"fallback_rule_hit": null,
"sanitized_user_message": "какой год самый активный по количеству документов?",
"tool_gate_decision": "run_address_lane",
"tool_gate_reason": "address_mode_classifier_detected",
"answer_structure_v11": null,
"investigation_state_snapshot": null,
"normalized": null,
"normalizer_output": {
"trace_id": "XjOmBTjLbXP2n7",
"prompt_version": "normalizer_v2_0_2",
"applied": false,
"effective_message": "Какой год самый активный по количеству документов?"
}
},
"error_code": null,
"error_message": null
},
{
"index": 3,
"id": "Q3",
"question": "Какой месяц самый активный по количеству операций?",
"session": null,
"session_id": "asst-2026-04-02_Address_General5_Live_Check_AfterReverseFix-q3",
"status_code": 200,
"ok": true,
"elapsed_ms": 1018,
"reply_type": "factual",
"trace_id": "address-gq-TeIhTfe",
"assistant_reply": "Профиль периодов базы собран (movement-based aggregate).\nСтрок агрегата: 134.\nСамый активный месяц по операциям: 2015-02 (1249).\n1. 2015-02: 1249\n2. 2015-01: 924\n3. 2018-08: 854\n4. 2019-05: 536\n5. 2017-12: 503",
"assistant_reply_first_line": "Профиль периодов базы собран (movement-based aggregate).",
"expected_intent": "period_coverage_profile",
"actual_intent": "period_coverage_profile",
"intent_match": true,
"expected_mode": "address_query",
"actual_mode": "address_query",
"mode_match": true,
"expected_reply_type": null,
"reply_match": true,
"semantic_pass": true,
"route_pass": true,
"route_health": "ok_or_factual",
"strict_policy": "factual",
"strict_pass": true,
"selected_recipe": "address_period_coverage_profile_v1",
"missing_required_filters": [],
"match_failure_stage": "none",
"match_failure_reason": null,
"rows_fetched": 134,
"rows_matched": 134,
"mcp_call_status": "matched_non_empty",
"limited_reason_category": null,
"llm_decomposition_applied": false,
"llm_decomposition_reason": "not_address_like",
"fallback_rule_hit": null,
"debug_payload": {
"trace_id": "address-gq-TeIhTfe",
"prompt_version": "address_query_runtime_v1",
"schema_version": "address_query_runtime_v1",
"fallback_type": "none",
"route_summary": null,
"fragments": [],
"requirements_extracted": [],
"coverage_report": {
"requirements_total": 0,
"requirements_covered": 0,
"requirements_uncovered": [],
"requirements_partially_covered": [],
"clarification_needed_for": [],
"out_of_scope_requirements": []
},
"routes": [],
"retrieval_status": [],
"retrieval_results": [],
"answer_grounding_check": {
"status": "grounded",
"route_subject_match": true,
"missing_requirements": [],
"reasons": [
"management_profile_signal_detected",
"shape_not_detected",
"period_coverage_profile_signal_detected"
],
"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": "period_coverage_profile",
"detected_intent_confidence": "high",
"extracted_filters": {
"sort": "period_desc",
"period_to": "2026-04-02"
},
"missing_required_filters": [],
"selected_recipe": "address_period_coverage_profile_v1",
"mcp_call_status_legacy": "matched_non_empty",
"account_scope_mode": "preferred",
"account_scope_fallback_applied": false,
"anchor_type": "unknown",
"anchor_value_raw": null,
"anchor_value_resolved": null,
"resolver_confidence": "low",
"ambiguity_count": 0,
"match_failure_stage": "none",
"match_failure_reason": null,
"mcp_call_status": "matched_non_empty",
"rows_fetched": 134,
"raw_rows_received": 134,
"rows_after_account_scope": 134,
"rows_after_recipe_filter": 134,
"rows_materialized": 134,
"rows_matched": 134,
"raw_row_keys_sample": [
"Период",
"Регистратор",
"СчетДт",
"СчетКт",
"Сумма",
"Period",
"Registrator",
"Amount"
],
"materialization_drop_reason": "none",
"account_token_raw": null,
"account_token_normalized": null,
"account_scope_fields_checked": [
"account_dt",
"account_kt",
"registrator",
"analytics"
],
"account_scope_match_strategy": "account_code_regex_plus_alias_map_v1",
"account_scope_drop_reason": "not_applicable",
"runtime_readiness": "LIVE_QUERYABLE_WITH_LIMITS",
"limited_reason_category": null,
"response_type": "FACTUAL_SUMMARY",
"execution_lane": "address_query",
"llm_decomposition_applied": false,
"llm_decomposition_attempted": false,
"llm_provider_used": "local",
"llm_decomposition_trace_id": null,
"llm_decomposition_effective_message": "Какой месяц самый активный по количеству операций?",
"llm_decomposition_reason": "not_address_like",
"fallback_rule_hit": null,
"sanitized_user_message": "какой месяц самый активный по количеству операций?",
"tool_gate_decision": "run_address_lane",
"tool_gate_reason": "address_mode_classifier_detected",
"answer_structure_v11": null,
"investigation_state_snapshot": null,
"normalized": null,
"normalizer_output": null
},
"error_code": null,
"error_message": null
},
{
"index": 4,
"id": "Q4",
"question": "Какие типы документов используются чаще всего в базе?",
"session": null,
"session_id": "asst-2026-04-02_Address_General5_Live_Check_AfterReverseFix-q4",
"status_code": 200,
"ok": true,
"elapsed_ms": 5177,
"reply_type": "factual",
"trace_id": "address-JVeZqbkygd",
"assistant_reply": "Профиль типов документов и разделов учета собран (movement-based aggregate).\nСтрок агрегата: 147.\nТоп типов документов (по числу уникальных регистраторов):\n1. Списание с расчетного счета: 2352 (52.6%)\n2. Поступление товаров и услуг: 486 (10.9%)\n3. Регламентная операция: 414 (9.3%)\n4. Поступление на расчетный счет: 323 (7.2%)\n5. Счет-фактура полученный: 261 (5.8%)\n6. Операция (бухгалтерский и налоговый учет): 147 (3.3%)\n7. Реализация товаров и услуг: 123 (2.8%)\n8. Отражение зарплаты в регламентированном учете: 87 (1.9%)\n9. Приходный кассовый ордер: 76 (1.7%)\n10. Расходный кассовый ордер: 73 (1.6%)",
"assistant_reply_first_line": "Профиль типов документов и разделов учета собран (movement-based aggregate).",
"expected_intent": "document_type_and_account_section_profile",
"actual_intent": "document_type_and_account_section_profile",
"intent_match": true,
"expected_mode": "address_query",
"actual_mode": "address_query",
"mode_match": true,
"expected_reply_type": null,
"reply_match": true,
"semantic_pass": true,
"route_pass": true,
"route_health": "ok_or_factual",
"strict_policy": "factual",
"strict_pass": true,
"selected_recipe": "address_document_type_and_account_section_profile_v1",
"missing_required_filters": [],
"match_failure_stage": "none",
"match_failure_reason": null,
"rows_fetched": 147,
"rows_matched": 147,
"mcp_call_status": "matched_non_empty",
"limited_reason_category": null,
"llm_decomposition_applied": false,
"llm_decomposition_reason": "normalized_fragment_same",
"fallback_rule_hit": null,
"debug_payload": {
"trace_id": "address-JVeZqbkygd",
"prompt_version": "address_query_runtime_v1",
"schema_version": "address_query_runtime_v1",
"fallback_type": "none",
"route_summary": null,
"fragments": [],
"requirements_extracted": [],
"coverage_report": {
"requirements_total": 0,
"requirements_covered": 0,
"requirements_uncovered": [],
"requirements_partially_covered": [],
"clarification_needed_for": [],
"out_of_scope_requirements": []
},
"routes": [],
"retrieval_status": [],
"retrieval_results": [],
"answer_grounding_check": {
"status": "grounded",
"route_subject_match": true,
"missing_requirements": [],
"reasons": [
"address_action_detected",
"address_entity_detected",
"document_list_signal_detected",
"document_type_and_account_section_profile_signal_detected"
],
"why_included_summary": [],
"selection_reason_summary": []
},
"dropped_intent_segments": [],
"detected_mode": "address_query",
"detected_mode_confidence": "high",
"query_shape": "DOCUMENT_LIST",
"query_shape_confidence": "medium",
"detected_intent": "document_type_and_account_section_profile",
"detected_intent_confidence": "high",
"extracted_filters": {
"sort": "period_desc",
"period_to": "2026-04-02"
},
"missing_required_filters": [],
"selected_recipe": "address_document_type_and_account_section_profile_v1",
"mcp_call_status_legacy": "matched_non_empty",
"account_scope_mode": "preferred",
"account_scope_fallback_applied": false,
"anchor_type": "unknown",
"anchor_value_raw": null,
"anchor_value_resolved": null,
"resolver_confidence": "low",
"ambiguity_count": 0,
"match_failure_stage": "none",
"match_failure_reason": null,
"mcp_call_status": "matched_non_empty",
"rows_fetched": 147,
"raw_rows_received": 147,
"rows_after_account_scope": 147,
"rows_after_recipe_filter": 147,
"rows_materialized": 147,
"rows_matched": 147,
"raw_row_keys_sample": [
"Период",
"Регистратор",
"СчетДт",
"СчетКт",
"Сумма",
"Period",
"Registrator",
"AccountDt",
"Amount"
],
"materialization_drop_reason": "none",
"account_token_raw": null,
"account_token_normalized": null,
"account_scope_fields_checked": [
"account_dt",
"account_kt",
"registrator",
"analytics"
],
"account_scope_match_strategy": "account_code_regex_plus_alias_map_v1",
"account_scope_drop_reason": "not_applicable",
"runtime_readiness": "LIVE_QUERYABLE_WITH_LIMITS",
"limited_reason_category": null,
"response_type": "FACTUAL_SUMMARY",
"execution_lane": "address_query",
"llm_decomposition_applied": false,
"llm_decomposition_attempted": true,
"llm_provider_used": "local",
"llm_decomposition_trace_id": "9kh3MZnV3-IXQJ",
"llm_decomposition_effective_message": "Какие типы документов используются чаще всего в базе?",
"llm_decomposition_reason": "normalized_fragment_same",
"fallback_rule_hit": null,
"sanitized_user_message": "какие типы документов используются чаще всего в базе?",
"tool_gate_decision": "run_address_lane",
"tool_gate_reason": "address_mode_classifier_detected",
"answer_structure_v11": null,
"investigation_state_snapshot": null,
"normalized": null,
"normalizer_output": {
"trace_id": "9kh3MZnV3-IXQJ",
"prompt_version": "normalizer_v2_0_2",
"applied": false,
"effective_message": "Какие типы документов используются чаще всего в базе?"
}
},
"error_code": null,
"error_message": null
},
{
"index": 5,
"id": "Q5",
"question": "Какие разделы учета наиболее заполнены и какие почти не используются?",
"session": null,
"session_id": "asst-2026-04-02_Address_General5_Live_Check_AfterReverseFix-q5",
"status_code": 200,
"ok": true,
"elapsed_ms": 1001,
"reply_type": "factual",
"trace_id": "address-L4Ak23OiJH",
"assistant_reply": "Профиль типов документов и разделов учета собран (movement-based aggregate).\nСтрок агрегата: 147.\nНаиболее заполненные разделы учета (по операциям Дт+Кт):\n1. 90 (Продажи): 2973 (12.1%)\n2. 51 (Расчетные счета): 2967 (12.1%)\n3. 60 (Расчеты с поставщиками и подрядчиками): 2793 (11.4%)\n4. 44 (Расходы на продажу): 2422 (9.9%)\n5. 68 (Расчеты по налогам и сборам): 1553 (6.3%)\n6. 10 (Материалы): 1494 (6.1%)\n7. 19 (НДС по приобретенным ценностям): 1489 (6.1%)\n8. 91 (Прочие доходы и расходы): 1324 (5.4%)\n9. 41 (Товары): 1312 (5.3%)\n10. 76 (Расчеты с разными дебиторами и кредиторами): 1240 (5.0%)\nРазделы с минимальной активностью (среди использованных):\n1. 58 (Финансовые вложения): 2\n2. 81 (Собственные акции (доли)): 2\n3. 80 (Уставный капитал): 5\n4. 03: 6\n5. 04 (Нематериальные активы): 6\n6. 75 (Расчеты с учредителями): 16\n7. 55 (Специальные счета в банках): 18\n8. 84 (Нераспределенная прибыль (непокрытый убыток)): 20\n9. 26 (Общехозяйственные расходы): 51\n10. 71 (Расчеты с подотчетными лицами): 76",
"assistant_reply_first_line": "Профиль типов документов и разделов учета собран (movement-based aggregate).",
"expected_intent": "document_type_and_account_section_profile",
"actual_intent": "document_type_and_account_section_profile",
"intent_match": true,
"expected_mode": "address_query",
"actual_mode": "address_query",
"mode_match": true,
"expected_reply_type": null,
"reply_match": true,
"semantic_pass": true,
"route_pass": true,
"route_health": "ok_or_factual",
"strict_policy": "factual",
"strict_pass": true,
"selected_recipe": "address_document_type_and_account_section_profile_v1",
"missing_required_filters": [],
"match_failure_stage": "none",
"match_failure_reason": null,
"rows_fetched": 147,
"rows_matched": 147,
"mcp_call_status": "matched_non_empty",
"limited_reason_category": null,
"llm_decomposition_applied": false,
"llm_decomposition_reason": "not_address_like",
"fallback_rule_hit": null,
"debug_payload": {
"trace_id": "address-L4Ak23OiJH",
"prompt_version": "address_query_runtime_v1",
"schema_version": "address_query_runtime_v1",
"fallback_type": "none",
"route_summary": null,
"fragments": [],
"requirements_extracted": [],
"coverage_report": {
"requirements_total": 0,
"requirements_covered": 0,
"requirements_uncovered": [],
"requirements_partially_covered": [],
"clarification_needed_for": [],
"out_of_scope_requirements": []
},
"routes": [],
"retrieval_status": [],
"retrieval_results": [],
"answer_grounding_check": {
"status": "grounded",
"route_subject_match": true,
"missing_requirements": [],
"reasons": [
"management_profile_signal_detected",
"shape_not_detected",
"document_type_and_account_section_profile_signal_detected"
],
"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": "document_type_and_account_section_profile",
"detected_intent_confidence": "high",
"extracted_filters": {
"sort": "period_desc",
"period_to": "2026-04-02"
},
"missing_required_filters": [],
"selected_recipe": "address_document_type_and_account_section_profile_v1",
"mcp_call_status_legacy": "matched_non_empty",
"account_scope_mode": "preferred",
"account_scope_fallback_applied": false,
"anchor_type": "unknown",
"anchor_value_raw": null,
"anchor_value_resolved": null,
"resolver_confidence": "low",
"ambiguity_count": 0,
"match_failure_stage": "none",
"match_failure_reason": null,
"mcp_call_status": "matched_non_empty",
"rows_fetched": 147,
"raw_rows_received": 147,
"rows_after_account_scope": 147,
"rows_after_recipe_filter": 147,
"rows_materialized": 147,
"rows_matched": 147,
"raw_row_keys_sample": [
"Период",
"Регистратор",
"СчетДт",
"СчетКт",
"Сумма",
"Period",
"Registrator",
"AccountDt",
"Amount"
],
"materialization_drop_reason": "none",
"account_token_raw": null,
"account_token_normalized": null,
"account_scope_fields_checked": [
"account_dt",
"account_kt",
"registrator",
"analytics"
],
"account_scope_match_strategy": "account_code_regex_plus_alias_map_v1",
"account_scope_drop_reason": "not_applicable",
"runtime_readiness": "LIVE_QUERYABLE_WITH_LIMITS",
"limited_reason_category": null,
"response_type": "FACTUAL_SUMMARY",
"execution_lane": "address_query",
"llm_decomposition_applied": false,
"llm_decomposition_attempted": false,
"llm_provider_used": "local",
"llm_decomposition_trace_id": null,
"llm_decomposition_effective_message": "Какие разделы учета наиболее заполнены и какие почти не используются?",
"llm_decomposition_reason": "not_address_like",
"fallback_rule_hit": null,
"sanitized_user_message": "какие разделы учета наиболее заполнены и какие почти не используются?",
"tool_gate_decision": "run_address_lane",
"tool_gate_reason": "address_mode_classifier_detected",
"answer_structure_v11": null,
"investigation_state_snapshot": null,
"normalized": null,
"normalizer_output": null
},
"error_code": null,
"error_message": null
}
]
}

View File

@ -0,0 +1,9 @@
# Response Audit: 2026-04-02_Address_General5_Live_Check_AfterReverseFix
| id | strict | route_health | reply_type | intent | limited_reason | question | assistant_first_line |
|---|---|---|---|---|---|---|---|
| Q1 | True | ok_or_factual | factual | period_coverage_profile | None | За какие годы в базе есть данные? | Профиль периодов базы собран (movement-based aggregate). |
| Q2 | True | ok_or_factual | factual | period_coverage_profile | None | Какой год самый активный по количеству документов? | Профиль периодов базы собран (movement-based aggregate). |
| Q3 | True | ok_or_factual | factual | period_coverage_profile | None | Какой месяц самый активный по количеству операций? | Профиль периодов базы собран (movement-based aggregate). |
| Q4 | True | ok_or_factual | factual | document_type_and_account_section_profile | None | Какие типы документов используются чаще всего в базе? | Профиль типов документов и разделов учета собран (movement-based aggregate). |
| Q5 | True | ok_or_factual | factual | document_type_and_account_section_profile | None | Какие разделы учета наиболее заполнены и какие почти не используются? | Профиль типов документов и разделов учета собран (movement-based aggregate). |

View File

@ -0,0 +1,45 @@
{
"run_id": "2026-04-02_Address_General5_Live_Check_AfterReverseFix",
"generated_at": "2026-04-02T20:52:16",
"source_questions_file": "X:\\1C\\NDC_1C\\docs\\ADDRESS\\question_sets\\temp_general5_live_check_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": "factual",
"totals": {
"questions_total": 5,
"ok_200_count": 5,
"semantic_pass_count": 5,
"semantic_pass_rate": 1.0,
"route_pass_count": 5,
"route_pass_rate": 1.0,
"strict_pass_count": 5,
"strict_pass_rate": 1.0,
"factual_count": 5,
"partial_coverage_count": 0,
"clarification_required_count": 0,
"http_error_count": 0,
"llm_decomposition_applied_count": 0,
"avg_elapsed_ms": 2670.4
},
"distributions": {
"reply_type": {
"factual": 5
},
"actual_intent": {
"period_coverage_profile": 3,
"document_type_and_account_section_profile": 2
},
"actual_mode": {
"address_query": 5
},
"mcp_call_status": {
"matched_non_empty": 5
},
"limited_reason_category": {},
"route_health": {
"ok_or_factual": 5
}
}
}

View File

@ -0,0 +1,28 @@
# 2026-04-02_Address_LLM_First_Gate_Probe
Generated at: 2026-04-02T21:57:17
Questions file: X:\1C\NDC_1C\docs\ADDRESS\question_sets\temp_llm_first_gate_probe_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: factual
## Totals
- questions_total: 4
- ok_200_count: 4
- semantic_pass_count: 4
- semantic_pass_rate: 1.0
- route_pass_count: 3
- route_pass_rate: 0.75
- strict_pass_count: 3
- strict_pass_rate: 0.75
- factual_count: 3
- partial_coverage_count: 1
- clarification_required_count: 0
- http_error_count: 0
- llm_decomposition_applied_count: 2
- avg_elapsed_ms: 6017.5
## Files
- run_summary.json
- full_live_results.json
- failures_only.json

View File

@ -0,0 +1,141 @@
[
{
"index": 4,
"id": "L004",
"question": "кто у нас заказчики вообще",
"session": null,
"session_id": "asst-2026-04-02_Address_LLM_First_Gate_Probe-l004",
"status_code": 200,
"ok": true,
"elapsed_ms": 4493,
"reply_type": "partial_coverage",
"trace_id": "address-414GMyc_O7",
"assistant_reply": "Этот запрос не подходит под address_query V1.\nПричина: intent пока не поддержан в address V1.\nЧто нужно уточнить: переформулируйте вопрос как адресный lookup по счету/контрагенту/договору.",
"assistant_reply_first_line": "Этот запрос не подходит под address_query V1.",
"expected_intent": null,
"actual_intent": "unknown",
"intent_match": true,
"expected_mode": "address_query",
"actual_mode": "address_query",
"mode_match": true,
"expected_reply_type": null,
"reply_match": true,
"semantic_pass": true,
"route_pass": false,
"route_health": "blocked_unsupported",
"strict_policy": "factual",
"strict_pass": false,
"selected_recipe": null,
"missing_required_filters": [],
"match_failure_stage": "none",
"match_failure_reason": null,
"rows_fetched": 0,
"rows_matched": 0,
"mcp_call_status": "skipped",
"limited_reason_category": "unsupported",
"llm_decomposition_applied": false,
"llm_decomposition_reason": "normalized_fragment_same",
"fallback_rule_hit": null,
"debug_payload": {
"trace_id": "address-414GMyc_O7",
"prompt_version": "address_query_runtime_v1",
"schema_version": "address_query_runtime_v1",
"fallback_type": "partial",
"route_summary": null,
"fragments": [],
"requirements_extracted": [],
"coverage_report": {
"requirements_total": 0,
"requirements_covered": 0,
"requirements_uncovered": [],
"requirements_partially_covered": [],
"clarification_needed_for": [],
"out_of_scope_requirements": []
},
"routes": [],
"retrieval_status": [],
"retrieval_results": [],
"answer_grounding_check": {
"status": "partial",
"route_subject_match": true,
"missing_requirements": [],
"reasons": [
"address_action_detected",
"address_entity_detected",
"shape_not_detected",
"intent_not_supported_in_v1"
],
"why_included_summary": [],
"selection_reason_summary": []
},
"dropped_intent_segments": [],
"detected_mode": "address_query",
"detected_mode_confidence": "high",
"query_shape": "UNKNOWN",
"query_shape_confidence": "low",
"detected_intent": "unknown",
"detected_intent_confidence": "low",
"extracted_filters": {
"sort": "period_desc",
"limit": 20
},
"missing_required_filters": [],
"selected_recipe": null,
"mcp_call_status_legacy": "skipped",
"account_scope_mode": "strict",
"account_scope_fallback_applied": false,
"anchor_type": "unknown",
"anchor_value_raw": null,
"anchor_value_resolved": null,
"resolver_confidence": "low",
"ambiguity_count": 0,
"match_failure_stage": "none",
"match_failure_reason": null,
"mcp_call_status": "skipped",
"rows_fetched": 0,
"raw_rows_received": 0,
"rows_after_account_scope": 0,
"rows_after_recipe_filter": 0,
"rows_materialized": 0,
"rows_matched": 0,
"raw_row_keys_sample": [],
"materialization_drop_reason": "none",
"account_token_raw": null,
"account_token_normalized": null,
"account_scope_fields_checked": [
"account_dt",
"account_kt",
"registrator",
"analytics"
],
"account_scope_match_strategy": "account_code_regex_plus_alias_map_v1",
"account_scope_drop_reason": "not_applicable",
"runtime_readiness": "DEEP_ONLY",
"limited_reason_category": "unsupported",
"response_type": "LIMITED_WITH_REASON",
"execution_lane": "address_query",
"llm_decomposition_applied": false,
"llm_decomposition_attempted": true,
"llm_provider_used": "local",
"llm_decomposition_trace_id": "wrWnx-j7j-vZsF",
"llm_decomposition_effective_message": "кто у нас заказчики вообще",
"llm_decomposition_reason": "normalized_fragment_same",
"llm_canonical_candidate_detected": true,
"fallback_rule_hit": null,
"sanitized_user_message": "кто у нас заказчики вообще",
"tool_gate_decision": "run_address_lane",
"tool_gate_reason": "address_mode_classifier_detected",
"answer_structure_v11": null,
"investigation_state_snapshot": null,
"normalized": null,
"normalizer_output": {
"trace_id": "wrWnx-j7j-vZsF",
"prompt_version": "normalizer_v2_0_2",
"applied": false,
"effective_message": "кто у нас заказчики вообще"
}
},
"error_code": null,
"error_message": null
}
]

File diff suppressed because one or more lines are too long

View File

@ -0,0 +1,8 @@
# Response Audit: 2026-04-02_Address_LLM_First_Gate_Probe
| id | strict | route_health | reply_type | intent | limited_reason | question | assistant_first_line |
|---|---|---|---|---|---|---|---|
| L001 | True | ok_or_factual | factual | counterparty_activity_lifecycle | None | выведи список заказчиков за все время | Собран профиль активности заказчиков (bank-doc activity aggregate). |
| L002 | True | ok_or_factual | factual | counterparty_activity_lifecycle | None | покажи список заказчиков за 20год | Собран профиль активности заказчиков (bank-doc activity aggregate). |
| L003 | True | ok_or_factual | factual | counterparty_activity_lifecycle | None | zakazchiki za 20 god spisok | Собран профиль активности заказчиков (bank-doc activity aggregate). |
| L004 | False | blocked_unsupported | partial_coverage | unknown | unsupported | кто у нас заказчики вообще | Этот запрос не подходит под address_query V1. |

View File

@ -0,0 +1,50 @@
{
"run_id": "2026-04-02_Address_LLM_First_Gate_Probe",
"generated_at": "2026-04-02T21:57:17",
"source_questions_file": "X:\\1C\\NDC_1C\\docs\\ADDRESS\\question_sets\\temp_llm_first_gate_probe_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": "factual",
"totals": {
"questions_total": 4,
"ok_200_count": 4,
"semantic_pass_count": 4,
"semantic_pass_rate": 1.0,
"route_pass_count": 3,
"route_pass_rate": 0.75,
"strict_pass_count": 3,
"strict_pass_rate": 0.75,
"factual_count": 3,
"partial_coverage_count": 1,
"clarification_required_count": 0,
"http_error_count": 0,
"llm_decomposition_applied_count": 2,
"avg_elapsed_ms": 6017.5
},
"distributions": {
"reply_type": {
"factual": 3,
"partial_coverage": 1
},
"actual_intent": {
"counterparty_activity_lifecycle": 3,
"unknown": 1
},
"actual_mode": {
"address_query": 4
},
"mcp_call_status": {
"matched_non_empty": 3,
"skipped": 1
},
"limited_reason_category": {
"unsupported": 1
},
"route_health": {
"ok_or_factual": 3,
"blocked_unsupported": 1
}
}
}

View File

@ -0,0 +1,28 @@
# 2026-04-02_Address_LLM_First_Gate_Probe_AfterRosterFix
Generated at: 2026-04-02T22:00:35
Questions file: X:\1C\NDC_1C\docs\ADDRESS\question_sets\temp_llm_first_gate_probe_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: factual
## Totals
- questions_total: 4
- ok_200_count: 4
- semantic_pass_count: 4
- semantic_pass_rate: 1.0
- route_pass_count: 4
- route_pass_rate: 1.0
- strict_pass_count: 4
- strict_pass_rate: 1.0
- factual_count: 4
- partial_coverage_count: 0
- clarification_required_count: 0
- http_error_count: 0
- llm_decomposition_applied_count: 2
- avg_elapsed_ms: 6061.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,8 @@
# Response Audit: 2026-04-02_Address_LLM_First_Gate_Probe_AfterRosterFix
| id | strict | route_health | reply_type | intent | limited_reason | question | assistant_first_line |
|---|---|---|---|---|---|---|---|
| L001 | True | ok_or_factual | factual | counterparty_activity_lifecycle | None | выведи список заказчиков за все время | Собран профиль активности заказчиков (bank-doc activity aggregate). |
| L002 | True | ok_or_factual | factual | counterparty_activity_lifecycle | None | покажи список заказчиков за 20год | Собран профиль активности заказчиков (bank-doc activity aggregate). |
| L003 | True | ok_or_factual | factual | counterparty_activity_lifecycle | None | zakazchiki za 20 god spisok | Собран профиль активности заказчиков (bank-doc activity aggregate). |
| L004 | True | ok_or_factual | factual | counterparty_activity_lifecycle | None | кто у нас заказчики вообще | Собран профиль активности заказчиков (bank-doc activity aggregate). |

Some files were not shown because too many files have changed in this diff Show More