АРЧ АП11 - Выделить route policy adapter для архитектуры assistant runtime
This commit is contained in:
+8
-8
@@ -1,6 +1,7 @@
|
||||
"use strict";
|
||||
Object.defineProperty(exports, "__esModule", { value: true });
|
||||
exports.buildAssistantAddressOrchestrationRuntime = buildAssistantAddressOrchestrationRuntime;
|
||||
const assistantRoutePolicyRuntimeAdapter_1 = require("./assistantRoutePolicyRuntimeAdapter");
|
||||
function hasSelectedObjectInventorySignal(text) {
|
||||
return /(?:по\s+выбранному\s+объекту|по\s+этой\s+позиции|по\s+этому\s+товару|selected\s+object)/iu.test(String(text ?? ""));
|
||||
}
|
||||
@@ -78,26 +79,25 @@ async function buildAssistantAddressOrchestrationRuntime(input) {
|
||||
carryover = input.resolveAddressFollowupCarryoverContext(input.userMessage, input.sessionItems, addressInputMessage, addressPreDecompose, input.sessionAddressNavigationState);
|
||||
}
|
||||
const followupContext = carryover?.followupContext ?? null;
|
||||
const orchestrationDecision = input.resolveAssistantOrchestrationDecision({
|
||||
const routePolicyRuntime = (0, assistantRoutePolicyRuntimeAdapter_1.runAssistantRoutePolicyRuntime)({
|
||||
rawUserMessage: input.userMessage,
|
||||
effectiveAddressUserMessage: addressInputMessage,
|
||||
followupContext,
|
||||
llmPreDecomposeMeta: addressPreDecompose,
|
||||
sessionItems: input.sessionItems,
|
||||
sessionOrganizationScope: input.sessionOrganizationScope ?? null,
|
||||
useMock: input.useMock
|
||||
useMock: input.useMock,
|
||||
resolveAssistantOrchestrationDecision: input.resolveAssistantOrchestrationDecision
|
||||
});
|
||||
const orchestrationDecision = routePolicyRuntime.orchestrationDecision;
|
||||
const dialogContinuationContract = input.buildAddressDialogContinuationContractV2(input.userMessage, addressInputMessage, carryover, addressPreDecompose);
|
||||
const addressRuntimeMeta = {
|
||||
...addressPreDecompose,
|
||||
toolGateDecision: orchestrationDecision.toolGateDecision ?? null,
|
||||
toolGateReason: orchestrationDecision.toolGateReason ?? null,
|
||||
dialogContinuationContract,
|
||||
orchestrationContract: orchestrationDecision.orchestrationContract ?? null
|
||||
};
|
||||
const livingModeDecision = {
|
||||
mode: orchestrationDecision.livingMode,
|
||||
reason: orchestrationDecision.livingReason
|
||||
orchestrationContract: orchestrationDecision.orchestrationContract ?? null,
|
||||
routePolicyContract: routePolicyRuntime.routePolicyContract
|
||||
};
|
||||
return {
|
||||
addressPreDecompose,
|
||||
@@ -105,6 +105,6 @@ async function buildAssistantAddressOrchestrationRuntime(input) {
|
||||
carryover,
|
||||
orchestrationDecision,
|
||||
addressRuntimeMeta,
|
||||
livingModeDecision
|
||||
livingModeDecision: routePolicyRuntime.livingModeDecision
|
||||
};
|
||||
}
|
||||
|
||||
@@ -0,0 +1,38 @@
|
||||
"use strict";
|
||||
Object.defineProperty(exports, "__esModule", { value: true });
|
||||
exports.ASSISTANT_ROUTE_POLICY_RUNTIME_SCHEMA_VERSION = void 0;
|
||||
exports.runAssistantRoutePolicyRuntime = runAssistantRoutePolicyRuntime;
|
||||
exports.ASSISTANT_ROUTE_POLICY_RUNTIME_SCHEMA_VERSION = "assistant_route_policy_runtime_v1";
|
||||
function hasObject(value) {
|
||||
return Boolean(value && typeof value === "object");
|
||||
}
|
||||
function runAssistantRoutePolicyRuntime(input) {
|
||||
const orchestrationDecision = input.resolveAssistantOrchestrationDecision({
|
||||
rawUserMessage: input.rawUserMessage,
|
||||
effectiveAddressUserMessage: input.effectiveAddressUserMessage,
|
||||
followupContext: input.followupContext,
|
||||
llmPreDecomposeMeta: input.llmPreDecomposeMeta,
|
||||
sessionItems: input.sessionItems,
|
||||
sessionOrganizationScope: input.sessionOrganizationScope,
|
||||
useMock: input.useMock
|
||||
});
|
||||
const livingModeDecision = {
|
||||
mode: orchestrationDecision.livingMode,
|
||||
reason: orchestrationDecision.livingReason
|
||||
};
|
||||
return {
|
||||
orchestrationDecision,
|
||||
livingModeDecision,
|
||||
routePolicyContract: {
|
||||
schema_version: exports.ASSISTANT_ROUTE_POLICY_RUNTIME_SCHEMA_VERSION,
|
||||
policy_owner: "assistantRoutePolicyRuntimeAdapter",
|
||||
decision_source: "resolveAssistantOrchestrationDecision",
|
||||
living_mode: livingModeDecision.mode,
|
||||
living_reason: livingModeDecision.reason,
|
||||
tool_gate_decision: orchestrationDecision.toolGateDecision ?? null,
|
||||
tool_gate_reason: orchestrationDecision.toolGateReason ?? null,
|
||||
has_followup_context: hasObject(input.followupContext),
|
||||
has_orchestration_contract: hasObject(orchestrationDecision.orchestrationContract)
|
||||
}
|
||||
};
|
||||
}
|
||||
Reference in New Issue
Block a user