АДРЕСНЫЙ РЕЖИМ - ллм декомпоз
This commit is contained in:
@@ -35,6 +35,21 @@
|
||||
- `filter_extraction_audit.json`
|
||||
- `resolver_ambiguity_cases.md`
|
||||
|
||||
## Subwave M1.5 — L0 Hybrid Router Stabilization
|
||||
|
||||
Цель: стабилизировать входную интерпретацию на шумном вводе без раздувания словарей.
|
||||
|
||||
- LLM-first decompose в строгий JSON-контракт;
|
||||
- deterministic fallback (корни/подстроки, парсинг дат и счетов, шумоочистка);
|
||||
- режим `shadow` (без влияния на финальный ответ) и сбор trace;
|
||||
- переход в `soft-enable` только после прохождения регрессии.
|
||||
|
||||
Артефакты:
|
||||
|
||||
- `llm_router_shadow_report.json`
|
||||
- `fallback_trigger_audit.md`
|
||||
- `noisy_input_regression_results.md`
|
||||
|
||||
## Subwave M2 — Recipe + MCP Execution (Live-first)
|
||||
|
||||
Цель: связать intents с whitelist recipes и реальным MCP execution.
|
||||
@@ -90,4 +105,5 @@ Acceptance gates:
|
||||
## Что делаем сразу
|
||||
|
||||
- Сегодня стартуем с `M0` и `M1` (контракты + классификация/фильтры).
|
||||
- После этого сразу поднимаем `M2` для 2 первых intents (`payables/receivables`).
|
||||
- После этого закрываем `M1.5` (shadow L0 router + регрессия на шумных вопросах).
|
||||
- И только затем поднимаем `M2` для 2 первых intents (`payables/receivables`).
|
||||
|
||||
@@ -28,11 +28,11 @@
|
||||
## C. Договоры
|
||||
|
||||
- какие договоры не закрыты
|
||||
- что по договору 15/24
|
||||
- что по договору 1-ПМ/2020
|
||||
- есть ли долг по договору с Альфой
|
||||
- какие документы связаны с этим договором
|
||||
- покажи незакрытые договоры по контрагенту
|
||||
- какие хвосты по договору №15/24 на дату
|
||||
- какие хвосты по договору 1-ПМ/2020 на дату
|
||||
- есть ли открытые позиции по договору
|
||||
|
||||
## D. Документы
|
||||
@@ -79,7 +79,27 @@
|
||||
- проверь, есть ли открытые позиции по договору
|
||||
- проверь, есть ли документы по контрагенту за июль 2020
|
||||
|
||||
## I. Robustness (шум, опечатки, сленг)
|
||||
|
||||
- свк доки за 20год покеж
|
||||
- свк 20 год - покажи доки плс
|
||||
- что по свк за 2020 год выведи все доки плиз что есть
|
||||
- какие доки есть по свк за 2021
|
||||
- какие документы по контрагенту свк за все время
|
||||
- покажи сальдо по 60.01 на 31.07.20
|
||||
- остаток 60 на 2020.05
|
||||
- какой остаток по счету 60 на 2020 май
|
||||
- 60 счет остаток на май 2020 покажи
|
||||
- свк за 2020 покаж все поступления
|
||||
- свк июль 2020 какие доки есть
|
||||
- доки по свк с 01.07.2020 по 31.07.2020
|
||||
- покаж по договору 1-ПМ/2020 доки за 2020
|
||||
- че висит по 60 счету на 31 07 2020
|
||||
- бля епт покажи доки по свк за 20й
|
||||
|
||||
## Правило маршрутизации
|
||||
|
||||
- если вопрос = factual lookup -> `address_query`
|
||||
- если вопрос = why/prove/causal diagnosis -> `deep_analysis`
|
||||
|
||||
|
||||
|
||||
@@ -41,15 +41,35 @@
|
||||
Новый high-level flow:
|
||||
|
||||
1. Входящий вопрос.
|
||||
2. Mode-classifier: `address_query` | `deep_analysis` | `unsupported`.
|
||||
3. Если `address_query`:
|
||||
2. L0 hybrid router: LLM decompose + deterministic fallback.
|
||||
3. Mode-classifier: `address_query` | `deep_analysis` | `unsupported`.
|
||||
4. Если `address_query`:
|
||||
- resolve `address_intent`;
|
||||
- extract+validate filters;
|
||||
- select recipe;
|
||||
- execute MCP (live-first);
|
||||
- normalize result schema;
|
||||
- return factual answer.
|
||||
4. Если не `address_query`: текущий deep path без изменений.
|
||||
5. Если не `address_query`: текущий deep path без изменений.
|
||||
|
||||
## 3.1) L0 Hybrid Router (stabilization layer)
|
||||
|
||||
Назначение: убрать хрупкость на шумном пользовательском вводе (опечатки, сленг, лишние слова), не раздувая словари.
|
||||
|
||||
Порядок работы:
|
||||
|
||||
1. Сначала запускаем LLM decompose в строгий JSON-контракт.
|
||||
2. Если LLM дал пустой/невалидный/неиспользуемый фрагмент, включается короткий deterministic fallback:
|
||||
- триггеры по корням/подстрокам (не giant словарь словоформ);
|
||||
- парсинг дат/периодов/счетов;
|
||||
- шумоочистка (служебные слова, междометия, мусорные хвосты).
|
||||
3. Если и fallback не дал валидный результат, возвращаем `LIMITED_WITH_REASON`, без выдумывания фактов.
|
||||
|
||||
Ограничения:
|
||||
|
||||
- без company-specific словарей в runtime;
|
||||
- без генерации SQL/1C-query в свободной форме;
|
||||
- только интерпретация вопроса + передача в whitelist recipes.
|
||||
|
||||
## 4) Встраивание по слоям
|
||||
|
||||
@@ -58,6 +78,7 @@
|
||||
Изменения:
|
||||
|
||||
- добавить `question_mode` и `address_intent` в normalizer contract;
|
||||
- добавить L0 router contract (decompose output + fallback reason);
|
||||
- в `routeHintAdapter` добавить address-query rule set до deep route discipline.
|
||||
|
||||
Рекомендуемые файлы:
|
||||
@@ -131,6 +152,11 @@
|
||||
- `rows_fetched`
|
||||
- `rows_matched`
|
||||
- `response_type`
|
||||
- `llm_decomposition_attempted`
|
||||
- `llm_decomposition_applied`
|
||||
- `llm_decomposition_reason`
|
||||
- `fallback_rule_hit`
|
||||
- `sanitized_user_message`
|
||||
|
||||
## 5) Fallback Rules
|
||||
|
||||
@@ -160,9 +186,20 @@
|
||||
|
||||
1. `M0`: контракты (`question_mode`, `address_intent`, filter schema, recipe schema).
|
||||
2. `M1`: classifier + resolver + validator (без MCP execution).
|
||||
3. `M2`: MCP executor + 5 P0 recipe.
|
||||
4. `M3`: factual composer + debug payload + basic tests.
|
||||
5. `M4`: live rerun pack в `docs/ADDRESS/runs/...`.
|
||||
3. `M1.5`: L0 hybrid router (LLM-first + deterministic fallback) в shadow mode.
|
||||
4. `M2`: MCP executor + 5 P0 recipe.
|
||||
5. `M3`: factual composer + debug payload + basic tests.
|
||||
6. `M4`: live rerun pack в `docs/ADDRESS/runs/...`.
|
||||
|
||||
## 7.2) L0 rollout policy
|
||||
|
||||
1. `Shadow`: LLM decompose не влияет на ответ, только trace/audit.
|
||||
2. `Soft-enable`: LLM decompose влияет на routing только для P0 intents.
|
||||
3. `Full-enable`: LLM decompose + fallback включены для всего `address_query`.
|
||||
|
||||
Правило безопасности:
|
||||
|
||||
- любой сбой LLM должен откатываться в deterministic fallback, а не в random behavior.
|
||||
|
||||
## 7.1) Sprint B priority order (adapted to current reality)
|
||||
|
||||
@@ -191,3 +228,5 @@ Rationale:
|
||||
- Address intents из P0 стабильно маршрутизируются в MCP/live-first lane.
|
||||
- Factual-ответы по P0 сценариям возвращаются в предсказуемом формате.
|
||||
- `false_factual_rate = 0`.
|
||||
- Нет silent-degradation: при провале LLM есть explainable fallback reason.
|
||||
- На шумном вводе нет ложного сдвига anchor (`counterparty`, `account`, `period`).
|
||||
|
||||
Reference in New Issue
Block a user