АДРЕСНЫЙ РЕЖИМ - локальная подель на декомпозе
This commit is contained in:
+44
@@ -0,0 +1,44 @@
|
||||
# Address Query Runtime V1 — M2.3d Query Variants Expansion
|
||||
|
||||
Дата: 2026-04-01
|
||||
|
||||
## Цель шага
|
||||
|
||||
Подбить текущий этап M2.3c и расширить вариативность пользовательских формулировок для уже существующих intent'ов без изменения архитектурной рамки.
|
||||
|
||||
## Что сделано
|
||||
|
||||
1. Расширены сигналы address-mode:
|
||||
- добавлены entity-токены `компания/организация/поставщик/клиент/партнер` и английские эквиваленты.
|
||||
|
||||
2. Расширен intent-resolver:
|
||||
- добавлены вариации `documents_by_counterparty` и `bank_operations_by_counterparty` для формулировок через поставщика/клиента/компанию;
|
||||
- добаван loose by-anchor trigger (`по <якорь>`) для short/slang формулировок.
|
||||
|
||||
3. Усилен filter-extractor:
|
||||
- расширен extraction якоря контрагента (`по поставщику`, `по клиенту`, `по партнеру`, `по организации`, `by supplier/customer/client/partner`);
|
||||
- добавлены all-time варианты (`за весь период`, `за весь срок`, `за всю историю`, `for entire period`, `full history`);
|
||||
- добавлен month-period extraction (`за июль 2020`, `for july 2020`, `за 07.2020`);
|
||||
- добавлен fallback extraction по loose phrase (`по свк`).
|
||||
|
||||
4. Закрыт регресс из live export:
|
||||
- `какие доки есть по свк за 2021` больше не уходит в deep/canonical fallback;
|
||||
- запрос остаётся в `address_query` и резолвится как `list_documents_by_counterparty`.
|
||||
|
||||
5. Расширен тестовый контур:
|
||||
- добавлены новые unit-тесты в `addressQueryRuntimeM23.test.ts` под новые вариации и регрессионный кейс.
|
||||
|
||||
## Что НЕ меняли
|
||||
|
||||
- Не добавлялись новые intent'ы.
|
||||
- Не менялась deep-analysis ветка.
|
||||
- Не добавлялся free-form query builder.
|
||||
|
||||
## Проверка
|
||||
|
||||
- Команда: `npx vitest tests/addressQueryRuntimeM23.test.ts`
|
||||
- Результат: `1 file passed, 25 tests passed`
|
||||
|
||||
## Следующий шаг
|
||||
|
||||
- Запустить dry/live прогон в окне ассистента на расширенном наборе формулировок и зафиксировать non-empty/limited распределение по counterparty/account семействам.
|
||||
+24
@@ -0,0 +1,24 @@
|
||||
{
|
||||
"run_id": "2026-04-01_Address_Query_Runtime_V1_M2_3D_Query_Variants_Expansion",
|
||||
"comparison": {
|
||||
"baseline_ref": "HEAD (before M2.3d patch)",
|
||||
"current_ref": "workspace (after M2.3d patch + regression fix)"
|
||||
},
|
||||
"metrics": {
|
||||
"address_m23_test_cases": {
|
||||
"before": 15,
|
||||
"after": 25,
|
||||
"delta": 10
|
||||
},
|
||||
"address_m23_test_failures": {
|
||||
"before": 0,
|
||||
"after": 0,
|
||||
"delta": 0
|
||||
}
|
||||
},
|
||||
"notes": [
|
||||
"delta reflects additional query-variation coverage for mode, intent, and filters",
|
||||
"includes regression fix for slang docs phrase: 'какие доки есть по svk за 2021'",
|
||||
"no architecture-scope expansion (no new intents)"
|
||||
]
|
||||
}
|
||||
+15
@@ -0,0 +1,15 @@
|
||||
llm_normalizer/backend/src/services/addressQueryClassifier.ts
|
||||
llm_normalizer/backend/src/services/addressIntentResolver.ts
|
||||
llm_normalizer/backend/src/services/addressFilterExtractor.ts
|
||||
llm_normalizer/backend/tests/addressQueryRuntimeM23.test.ts
|
||||
llm_normalizer/backend/dist/services/addressQueryClassifier.js
|
||||
llm_normalizer/backend/dist/services/addressIntentResolver.js
|
||||
llm_normalizer/backend/dist/services/addressFilterExtractor.js
|
||||
docs/ADDRESS/address_query/question_bank_v1.md
|
||||
docs/ADDRESS/address_query/README.md
|
||||
docs/ADDRESS/runs/2026-04-01_Address_Query_Runtime_V1_M2_3D_Query_Variants_Expansion/README.md
|
||||
docs/ADDRESS/runs/2026-04-01_Address_Query_Runtime_V1_M2_3D_Query_Variants_Expansion/run_summary.json
|
||||
docs/ADDRESS/runs/2026-04-01_Address_Query_Runtime_V1_M2_3D_Query_Variants_Expansion/before_after_metrics.json
|
||||
docs/ADDRESS/runs/2026-04-01_Address_Query_Runtime_V1_M2_3D_Query_Variants_Expansion/query_variation_expansion_matrix.md
|
||||
docs/ADDRESS/runs/2026-04-01_Address_Query_Runtime_V1_M2_3D_Query_Variants_Expansion/smoke_checks.md
|
||||
docs/ADDRESS/runs/2026-04-01_Address_Query_Runtime_V1_M2_3D_Query_Variants_Expansion/changed_files.txt
|
||||
+17
@@ -0,0 +1,17 @@
|
||||
# Query Variation Expansion Matrix (M2.3d)
|
||||
|
||||
| area | before | after | validation |
|
||||
|---|---|---|---|
|
||||
| address mode entity signals | mostly `контрагент/договор/счет/документ` | added `компания/организация/поставщик/клиент/партнер` (+EN aliases) + `доки/док` slang | `addressQueryRuntimeM23.test.ts` |
|
||||
| docs/bank intent phrasing | counterparty-centric phrasing | supports company/supplier/customer/client/partner phrasing | `addressQueryRuntimeM23.test.ts` |
|
||||
| counterparty anchor extraction | basic `контрагент/компания` capture | adds supplier/client/partner/org variants (+EN aliases) + loose `по <якорь>` fallback | `addressQueryRuntimeM23.test.ts` |
|
||||
| all-time phrase detection | mostly `за все время` | adds `за весь период/срок/всю историю` + EN full-history variants | `addressQueryRuntimeM23.test.ts` |
|
||||
| month period extraction | range/year extraction | adds month phrases (`за июль 2020`, `for july 2020`, `за 07.2020`) | `addressQueryRuntimeM23.test.ts` |
|
||||
|
||||
## Added example phrasings
|
||||
|
||||
- `Покажи платежи по поставщику Альфа за июль 2020`
|
||||
- `Выведи документы по клиенту Бета за 2020-07`
|
||||
- `Покажи банковские операции по клиенту Бета за весь период`
|
||||
- `Какие компании есть в базе`
|
||||
- `Какие доки есть по свк за 2021`
|
||||
+32
@@ -0,0 +1,32 @@
|
||||
{
|
||||
"run_id": "2026-04-01_Address_Query_Runtime_V1_M2_3D_Query_Variants_Expansion",
|
||||
"date": "2026-04-01",
|
||||
"stage": "Address Query Runtime V1",
|
||||
"wave": "M2.3d",
|
||||
"goal": "Query variants expansion for existing intents + slang/loose-anchor regression fix",
|
||||
"status": "COMPLETED",
|
||||
"scope": {
|
||||
"new_intents": false,
|
||||
"deep_analysis_changes": false,
|
||||
"focus": [
|
||||
"mode signals",
|
||||
"intent hints",
|
||||
"counterparty anchor extraction",
|
||||
"all-time phrase handling",
|
||||
"month-period extraction",
|
||||
"slang docs + loose by-anchor handling",
|
||||
"unit test coverage"
|
||||
]
|
||||
},
|
||||
"checks": {
|
||||
"test_command": "npx vitest tests/addressQueryRuntimeM23.test.ts",
|
||||
"test_files_passed": 1,
|
||||
"tests_passed": 25,
|
||||
"tests_failed": 0
|
||||
},
|
||||
"guardrails": {
|
||||
"false_factual_rate_target": 0,
|
||||
"free_form_query_builder": "not_added",
|
||||
"whitelist_recipe_policy": "unchanged"
|
||||
}
|
||||
}
|
||||
+13
@@ -0,0 +1,13 @@
|
||||
# Smoke Checks
|
||||
|
||||
## Backend tests
|
||||
|
||||
- Command: `npx vitest tests/addressQueryRuntimeM23.test.ts`
|
||||
- Result: PASS
|
||||
- Details: `1 passed file`, `25 passed tests`, `0 failed`
|
||||
|
||||
## Build
|
||||
|
||||
- Command: `npm run build`
|
||||
- Result: PASS
|
||||
- Details: TypeScript build completed without errors.
|
||||
Reference in New Issue
Block a user