АДРЕСНЫЙ РЕЖИМ - ADDRESS: стабилизация интерпретации сленга и mixed RU/EN, расширение intent/mode-роутинга, регресс-тесты и live stress 102/102

This commit is contained in:
2026-04-02 11:01:28 +03:00
parent 7dd6607ded
commit da8a4eb872
68 changed files with 29777 additions and 3220 deletions
@@ -0,0 +1,25 @@
const { resolveAddressIntent } = require('../dist/services/addressIntentResolver.js');
const { extractAddressFilters } = require('../dist/services/addressFilterExtractor.js');
const { selectAddressRecipe, buildAddressRecipePlan } = require('../dist/services/addressRecipeCatalog.js');
const { executeAddressMcpQuery } = require('../dist/services/addressMcpClient.js');
(async () => {
const q = 'Покажи документы по договору 15/24';
const intentObj = resolveAddressIntent(q);
const filtersObj = extractAddressFilters(q, intentObj.intent);
const sel = selectAddressRecipe(intentObj.intent, filtersObj.extracted_filters);
console.log('intent_obj=', intentObj);
console.log('filters_obj=', filtersObj);
console.log('selection=', sel);
if (!sel.selected_recipe) return;
const plan = buildAddressRecipePlan(sel.selected_recipe, filtersObj.extracted_filters);
const mcp = await executeAddressMcpQuery({ query: plan.query, limit: plan.limit });
const rows = Array.isArray(mcp.raw_rows) ? mcp.raw_rows : [];
const contractNeedle = String(filtersObj.extracted_filters.contract || '').toLowerCase();
const byAnchor = rows.filter((r) => JSON.stringify(r).toLowerCase().includes(contractNeedle));
console.log('query_limit=', plan.limit);
console.log('raw_rows=', rows.length);
console.log('by_anchor=', byAnchor.length);
console.log('sample_registrators=', byAnchor.slice(0,10).map((r)=>String(r['Регистратор'] ?? r['Registrator'] ?? '')));
console.log('sample_rows=', byAnchor.slice(0,5));
})();