NODEDC_1C/llm_normalizer/backend/tmp/inspect_contract_query.js

26 lines
1.5 KiB
JavaScript

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));
})();