АДРЕСНЫЙ РЕЖИМ -ADDRESS:Шаг 1 - ЛЛМ ФЕРСТ + feat(address): стабилизация wave1 dynamic resolver контрагентов, follow-up carryover и актуализация docs/tests
This commit is contained in:
parent
53716e548e
commit
88094c09f8
|
|
@ -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
|
||||
}
|
||||
```
|
||||
|
|
@ -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 по первой группе общего домена (Q1–Q5) с 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-паки
|
||||
|
|
|
|||
|
|
@ -0,0 +1,112 @@
|
|||
# Management Route Probe Report — General Domain Group 1 (Q1–Q5)
|
||||
|
||||
- Дата/время запуска: `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 с жесткой проверкой метрик и сортировки.
|
||||
|
|
@ -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`
|
||||
|
|
|
|||
|
|
@ -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.
|
||||
|
|
@ -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.
|
||||
|
|
@ -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).
|
||||
|
|
|
|||
|
|
@ -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.
|
||||
|
|
@ -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. Профиль данных и активности (Q1–Q5)
|
||||
Суть: «что есть в базе», активность по годам/месяцам, типы документов, заполненность контуров.
|
||||
|
||||
Сложность:
|
||||
- C1: Q1, Q2, Q3, Q4
|
||||
- C2: Q5
|
||||
|
||||
### G2. Контрагенты и жизненный цикл базы (Q6–Q13)
|
||||
Суть: численность, роли, активность в периоде, новые/ушедшие, одноразовые, долгоживущие.
|
||||
|
||||
Сложность:
|
||||
- C1: Q6, Q7, Q8, Q9
|
||||
- C3: Q10, Q11, Q12, Q13
|
||||
|
||||
### G3. Клиентская ценность, выручка, оплаты (Q14–Q21)
|
||||
Суть: вклад клиентов в деньги/частоту/средний чек, концентрация выручки.
|
||||
|
||||
Сложность:
|
||||
- C2: Q14, Q15, Q16, Q17, Q18, Q19, Q20
|
||||
- C3: Q21
|
||||
|
||||
### G4. Поставщики и выплаты (Q22–Q27)
|
||||
Суть: ключевые/малозначимые поставщики, частота операций, регулярность, неактивные.
|
||||
|
||||
Сложность:
|
||||
- C2: Q22, Q23, Q24, Q25
|
||||
- C3: Q26, Q27
|
||||
|
||||
### G5. Договорная база (Q28–Q32)
|
||||
Суть: total vs used, активность по суммам/документам, stale договоры, мультидоговорность контрагентов.
|
||||
|
||||
Сложность:
|
||||
- C2: Q28, Q29, Q30
|
||||
- C3: Q31, Q32
|
||||
|
||||
### G6. Дебиторка/кредиторка и хвосты (Q33–Q38)
|
||||
Суть: top debtors/creditors, старение долгов, сравнение проблемности customer vs supplier контуров.
|
||||
|
||||
Сложность:
|
||||
- C2: Q33, Q36
|
||||
- C3: Q34, Q35, Q38
|
||||
- C4: Q37
|
||||
|
||||
### G7. Качество учета и риск-аномалии (Q39–Q40)
|
||||
Суть: подозрительные/неполные документы, разрозненные кейсы с высокой активностью.
|
||||
|
||||
Сложность:
|
||||
- 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`
|
||||
Назначение: Q1–Q3.
|
||||
|
||||
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`
|
||||
Назначение: Q8–Q13, Q26–Q27.
|
||||
|
||||
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`
|
||||
Назначение: Q14–Q21.
|
||||
|
||||
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`
|
||||
Назначение: Q22–Q25.
|
||||
|
||||
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`
|
||||
Назначение: Q28–Q32.
|
||||
|
||||
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`
|
||||
Назначение: Q33–Q38.
|
||||
|
||||
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`
|
||||
Назначение: Q39–Q40.
|
||||
|
||||
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, быстрый бизнес-эффект)
|
||||
Вопросы:
|
||||
- Q1–Q7, Q28.
|
||||
|
||||
Routes:
|
||||
- R01, R02, R03, часть R07.
|
||||
|
||||
Результат:
|
||||
- общий профиль базы + структура контрагентов + базовая договорная метрика.
|
||||
|
||||
### Batch 2 (C3 lifecycle)
|
||||
Вопросы:
|
||||
- Q8–Q13, Q26, Q27, Q31, Q32.
|
||||
|
||||
Routes:
|
||||
- R04, часть R07.
|
||||
|
||||
Результат:
|
||||
- устойчивый lifecycle слой (new/lost/one-time/long-term/stale).
|
||||
|
||||
### Batch 3 (ценность и концентрация)
|
||||
Вопросы:
|
||||
- Q14–Q25, Q29, Q30.
|
||||
|
||||
Routes:
|
||||
- R05, R06, часть R07.
|
||||
|
||||
Результат:
|
||||
- клиентская/поставщическая ценность и контрактные рейтинги.
|
||||
|
||||
### Batch 4 (задолженности и aging)
|
||||
Вопросы:
|
||||
- Q33–Q38.
|
||||
|
||||
Routes:
|
||||
- R08.
|
||||
|
||||
Результат:
|
||||
- дебиторка/кредиторка с age-buckets и сравнительной аналитикой.
|
||||
|
||||
### Batch 5 (quality/risk)
|
||||
Вопросы:
|
||||
- Q39–Q40.
|
||||
|
||||
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 для R01–R03 и 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/служебным кодам).
|
||||
|
|
@ -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`).
|
||||
|
|
|
|||
|
|
@ -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-паки, а не через бесконечные сленг-патчи.
|
||||
|
||||
|
|
@ -0,0 +1,112 @@
|
|||
# Management Route Probe Report — General Domain Group 1 (Q1–Q5)
|
||||
|
||||
- Дата/время запуска: `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 с жесткой проверкой метрик и сортировки.
|
||||
|
|
@ -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
|
||||
|
|
|
|||
|
|
@ -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`
|
||||
|
|
|
|||
|
|
@ -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).
|
||||
|
|
@ -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.
|
||||
|
|
@ -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).
|
||||
|
|
@ -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"
|
||||
}
|
||||
]
|
||||
|
|
@ -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"}
|
||||
]
|
||||
|
|
@ -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"
|
||||
}
|
||||
]
|
||||
|
|
@ -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"
|
||||
}
|
||||
]
|
||||
|
|
@ -0,0 +1,4 @@
|
|||
[
|
||||
{"id":"Q_Z1","text":"покажи договора все по жуковка 51","expected_mode":"address_query"},
|
||||
{"id":"Q_Z2","text":"покажи договора все по жуковка","expected_mode":"address_query"}
|
||||
]
|
||||
|
|
@ -0,0 +1,4 @@
|
|||
[
|
||||
{ "id": "P001", "text": "скок клиентов" },
|
||||
{ "id": "P002", "text": "кто у нас заказчики вообще" }
|
||||
]
|
||||
|
|
@ -0,0 +1,4 @@
|
|||
[
|
||||
{ "id": "G001", "text": "привет как дела" },
|
||||
{ "id": "G002", "text": "выведи список заказчиков за все время" }
|
||||
]
|
||||
|
|
@ -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"}
|
||||
]
|
||||
|
|
@ -0,0 +1,6 @@
|
|||
[
|
||||
{ "id": "L001", "text": "выведи список заказчиков за все время" },
|
||||
{ "id": "L002", "text": "покажи список заказчиков за 20год" },
|
||||
{ "id": "L003", "text": "zakazchiki za 20 god spisok" },
|
||||
{ "id": "L004", "text": "кто у нас заказчики вообще" }
|
||||
]
|
||||
|
|
@ -0,0 +1,10 @@
|
|||
[
|
||||
{
|
||||
"id": "R001",
|
||||
"text": "выведи список заказчиков за все время"
|
||||
},
|
||||
{
|
||||
"id": "R002",
|
||||
"text": "покажи список заказчиков за 20год"
|
||||
}
|
||||
]
|
||||
|
|
@ -0,0 +1,6 @@
|
|||
[
|
||||
{"id":"R001","text":"Какой год самый пассивный по количеству документов?"},
|
||||
{"id":"R002","text":"Какой месяц самый пассивный по количеству операций?"},
|
||||
{"id":"R003","text":"Какие типы документов используются реже всего в базе?"},
|
||||
{"id":"R004","text":"Какие разделы учета наименее заполнены?"}
|
||||
]
|
||||
|
|
@ -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"
|
||||
}
|
||||
]
|
||||
|
|
@ -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"
|
||||
}
|
||||
]
|
||||
|
|
@ -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"
|
||||
}
|
||||
]
|
||||
|
|
@ -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
|
||||
|
|
@ -0,0 +1 @@
|
|||
[]
|
||||
File diff suppressed because it is too large
Load Diff
|
|
@ -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). |
|
||||
|
|
@ -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
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
@ -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
|
||||
|
|
@ -0,0 +1 @@
|
|||
[]
|
||||
File diff suppressed because one or more lines are too long
|
|
@ -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). |
|
||||
|
|
@ -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
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
@ -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
|
||||
|
|
@ -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
|
||||
}
|
||||
]
|
||||
|
|
@ -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
|
||||
}
|
||||
]
|
||||
}
|
||||
|
|
@ -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. |
|
||||
|
|
@ -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
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
@ -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
|
||||
|
|
@ -0,0 +1 @@
|
|||
[]
|
||||
File diff suppressed because one or more lines are too long
|
|
@ -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). |
|
||||
|
|
@ -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
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
@ -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
|
||||
|
|
@ -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
|
|
@ -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). |
|
||||
|
|
@ -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
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
@ -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
|
||||
|
|
@ -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
|
|
@ -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). |
|
||||
|
|
@ -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
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
@ -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
|
||||
|
|
@ -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
|
||||
}
|
||||
]
|
||||
|
|
@ -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
|
||||
}
|
||||
]
|
||||
}
|
||||
|
|
@ -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. |
|
||||
|
|
@ -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
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
@ -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
|
||||
|
|
@ -0,0 +1 @@
|
|||
[]
|
||||
|
|
@ -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
|
||||
}
|
||||
]
|
||||
}
|
||||
|
|
@ -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). |
|
||||
|
|
@ -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
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
@ -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
|
||||
|
|
@ -0,0 +1 @@
|
|||
[]
|
||||
|
|
@ -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
|
||||
}
|
||||
]
|
||||
}
|
||||
|
|
@ -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). |
|
||||
|
|
@ -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
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
@ -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
|
||||
|
|
@ -0,0 +1 @@
|
|||
[]
|
||||
|
|
@ -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
|
||||
}
|
||||
]
|
||||
}
|
||||
|
|
@ -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). |
|
||||
|
|
@ -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
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
@ -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
|
||||
|
|
@ -0,0 +1 @@
|
|||
[]
|
||||
|
|
@ -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
|
||||
}
|
||||
]
|
||||
}
|
||||
|
|
@ -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). |
|
||||
|
|
@ -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
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
@ -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
|
||||
|
|
@ -0,0 +1 @@
|
|||
[]
|
||||
|
|
@ -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
|
||||
}
|
||||
]
|
||||
}
|
||||
|
|
@ -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). |
|
||||
|
|
@ -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
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
@ -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
|
||||
|
|
@ -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
|
|
@ -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. |
|
||||
|
|
@ -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
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
@ -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
|
||||
|
|
@ -0,0 +1 @@
|
|||
[]
|
||||
File diff suppressed because one or more lines are too long
|
|
@ -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
Loading…
Reference in New Issue