АРЧ - Ассистент: отделить reference-срез от execution-окна в ответах по lifecycle follow-up
This commit is contained in:
@@ -1,6 +1,12 @@
|
||||
export interface BuildAssistantAddressOrchestrationRuntimeInput {
|
||||
userMessage: string;
|
||||
sessionItems: unknown[];
|
||||
sessionAddressNavigationState?: unknown;
|
||||
sessionOrganizationScope?: {
|
||||
knownOrganizations?: unknown;
|
||||
selectedOrganization?: unknown;
|
||||
activeOrganization?: unknown;
|
||||
} | null;
|
||||
llmProvider: unknown;
|
||||
useMock: boolean;
|
||||
featureAddressLlmPredecomposeV1: boolean;
|
||||
@@ -15,7 +21,8 @@ export interface BuildAssistantAddressOrchestrationRuntimeInput {
|
||||
userMessage: string,
|
||||
sessionItems: unknown[],
|
||||
addressInputMessage: string,
|
||||
addressPreDecompose: Record<string, unknown>
|
||||
addressPreDecompose: Record<string, unknown>,
|
||||
sessionAddressNavigationState?: unknown
|
||||
) => AssistantAddressCarryoverLike | null;
|
||||
resolveAssistantOrchestrationDecision: (input: {
|
||||
rawUserMessage: string;
|
||||
@@ -23,6 +30,7 @@ export interface BuildAssistantAddressOrchestrationRuntimeInput {
|
||||
followupContext: unknown;
|
||||
llmPreDecomposeMeta: Record<string, unknown>;
|
||||
sessionItems?: unknown[];
|
||||
sessionOrganizationScope?: unknown;
|
||||
useMock: boolean;
|
||||
}) => Record<string, unknown>;
|
||||
buildAddressDialogContinuationContractV2: (
|
||||
@@ -57,7 +65,7 @@ function hasSelectedObjectInventorySignal(text: string | null): boolean {
|
||||
}
|
||||
|
||||
function hasSelectedObjectInventoryActionCue(text: string | null): boolean {
|
||||
return /(?:кому[\s\S]{0,80}продал[аи]?|кому[\s\S]{0,80}реализова[нлт][а-я]*|кому\s+был\s+продан|кто[\s\S]{0,40}купил|кто\s+это\s+поставил|кто\s+поставил|у\s+кого\s+купили|у\s+кого\s+куплено|где\s+мы\s+купили|где\s+куплено|по\s+каким\s+документам|какими\s+документами|покажи\s+документы|документы\s+закупки|buyer|sale\s+trace|supplier|vendor|purchase\s+documents|purchase[\s-]?to[\s-]?sale|old\s+purchase|aged\s+stock)/iu.test(
|
||||
return /(?:кому[\s\S]{0,80}продал[аи]?|кому[\s\S]{0,80}реализова[нлт][а-я]*|кому\s+был\s+продан|куда[\s\S]{0,80}продал[аи]?|куда[\s\S]{0,80}реализова[нлт][а-я]*|кто[\s\S]{0,40}купил|кто\s+это\s+поставил|кто\s+поставил|у\s+кого\s+купили|у\s+кого\s+куплено|где\s+мы\s+купили|где\s+куплено|по\s+каким\s+документам|какими\s+документами|покажи\s+документы|документы\s+закупки|buyer|sale\s+trace|supplier|vendor|purchase\s+documents|purchase[\s-]?to[\s-]?sale|old\s+purchase|aged\s+stock)/iu.test(
|
||||
String(text ?? "")
|
||||
);
|
||||
}
|
||||
@@ -154,7 +162,8 @@ export async function buildAssistantAddressOrchestrationRuntime(
|
||||
input.userMessage,
|
||||
input.sessionItems,
|
||||
addressInputMessage,
|
||||
addressPreDecompose
|
||||
addressPreDecompose,
|
||||
input.sessionAddressNavigationState
|
||||
);
|
||||
if (
|
||||
shouldPreferRawFollowupMessage(
|
||||
@@ -180,7 +189,8 @@ export async function buildAssistantAddressOrchestrationRuntime(
|
||||
input.userMessage,
|
||||
input.sessionItems,
|
||||
addressInputMessage,
|
||||
addressPreDecompose
|
||||
addressPreDecompose,
|
||||
input.sessionAddressNavigationState
|
||||
);
|
||||
}
|
||||
|
||||
@@ -191,6 +201,7 @@ export async function buildAssistantAddressOrchestrationRuntime(
|
||||
followupContext,
|
||||
llmPreDecomposeMeta: addressPreDecompose,
|
||||
sessionItems: input.sessionItems,
|
||||
sessionOrganizationScope: input.sessionOrganizationScope ?? null,
|
||||
useMock: input.useMock
|
||||
});
|
||||
const dialogContinuationContract = input.buildAddressDialogContinuationContractV2(
|
||||
|
||||
Reference in New Issue
Block a user