NODEDC_1C/llm_normalizer/backend/dist/services/assistantMetaFollowupPolicy.js

69 lines
2.9 KiB
JavaScript

"use strict";
// @ts-nocheck
Object.defineProperty(exports, "__esModule", { value: true });
exports.createAssistantMetaFollowupPolicy = createAssistantMetaFollowupPolicy;
function collectMessageSamples(input) {
const values = [
input.rawUserMessage,
input.repairedRawUserMessage,
input.effectiveAddressUserMessage,
input.repairedEffectiveAddressUserMessage
];
return Array.from(new Set(values
.map((item) => String(item ?? "").trim())
.filter((item) => item.length > 0)));
}
function hasSignalAcrossSamples(samples, detector) {
return samples.some((sample) => detector(sample));
}
function hasImplicitHistoricalCapabilityMetaSignal(samples) {
return samples.some((sample) => /(?:историческ|история|архив|раньше|ретро|старые\s+данные)/iu.test(sample) &&
/(?:мож(?:ешь|ем|но)|уме(?:ешь|ете))/iu.test(sample));
}
function createAssistantMetaFollowupPolicy(deps) {
function resolveMetaSignalSet(input) {
const samples = collectMessageSamples(input);
if (samples.length === 0) {
return {
dataScopeMetaQuery: false,
capabilityMetaQuery: false,
metaAnswerFollowupSignal: false
};
}
return {
dataScopeMetaQuery: hasSignalAcrossSamples(samples, deps.hasAssistantDataScopeMetaQuestionSignal),
capabilityMetaQuery: hasSignalAcrossSamples(samples, deps.shouldHandleAsAssistantCapabilityMetaQuery) ||
hasImplicitHistoricalCapabilityMetaSignal(samples),
metaAnswerFollowupSignal: hasSignalAcrossSamples(samples, deps.hasMetaAnswerFollowupSignal)
};
}
function resolveHardMetaMode(input) {
if (Boolean(input.dataScopeMetaQuery)) {
return "data_scope";
}
if (Boolean(input.capabilityMetaQuery) && !Boolean(input.dataRetrievalSignal)) {
return "capability";
}
return null;
}
function isMetaFollowupOverGroundedAnswer(input) {
return Boolean(input.followupContext &&
input.hasPriorAddressAnswerContext &&
(input.metaAnswerFollowupSignal || input.vatEvaluativeFollowupSignal) &&
!input.dataScopeMetaQuery &&
!input.capabilityMetaQuery &&
!input.aggregateBusinessAnalyticsSignal &&
!input.dataRetrievalSignal &&
!input.strongDataSignal &&
String(input.resolvedMode ?? "") !== "address_query" &&
String(input.resolvedIntent ?? "") === "unknown" &&
(!input.llmContractIntent || String(input.llmContractIntent) === "unknown") &&
String(input.llmContractMode ?? "") !== "address_query");
}
return {
resolveMetaSignalSet,
resolveHardMetaMode,
isMetaFollowupOverGroundedAnswer
};
}