ГЛОБАЛЬНЫЙ РЕФАКТОРИНГ АРХИТЕКТУРЫ - Рефакторинг этапов 2.2 - Усилена оркестрацию в deep/address гейте и follow-up binding в assistantService.ts. Починен кейс UTF-8 follow-up refinement (теперь followup_state_usage.applied=true в нужном сценарии). Убраны регрессии по assistantLivingRouter и stage3 lifecycle probe. Корректное поведение для llm canonical candidate (чтобы не уезжало в clarification_required там, где должен быть address factual).
This commit is contained in:
+10
-5
@@ -1,5 +1,6 @@
|
||||
import type { AssistantMessageRequestPayload } from "../types/assistant";
|
||||
import type { NormalizeRequestPayload, NormalizeResponsePayload } from "../types/normalizer";
|
||||
import type { InvestigationStateWithProblemUnits } from "../types/stage2ProblemUnits";
|
||||
import type { AssistantFollowupUsage } from "./assistantFollowupUsage";
|
||||
|
||||
export interface AssistantDeepTurnFollowupBinding {
|
||||
@@ -13,11 +14,11 @@ export interface BuildAssistantDeepTurnNormalizationRuntimeInput {
|
||||
payload: AssistantMessageRequestPayload;
|
||||
featureInvestigationStateV1: boolean;
|
||||
featureStateFollowupBindingV1: boolean;
|
||||
sessionInvestigationState: unknown | null | undefined;
|
||||
sessionInvestigationState: InvestigationStateWithProblemUnits | null | undefined;
|
||||
buildFollowupStateBinding: (input: {
|
||||
userMessage: string;
|
||||
payloadContext: NormalizeRequestPayload["context"] | undefined;
|
||||
investigationState: unknown;
|
||||
investigationState: InvestigationStateWithProblemUnits;
|
||||
}) => AssistantDeepTurnFollowupBinding;
|
||||
normalize: (payload: NormalizeRequestPayload) => Promise<NormalizeResponsePayload>;
|
||||
}
|
||||
@@ -31,14 +32,18 @@ export interface BuildAssistantDeepTurnNormalizationRuntimeOutput {
|
||||
export async function buildAssistantDeepTurnNormalizationRuntime(
|
||||
input: BuildAssistantDeepTurnNormalizationRuntimeInput
|
||||
): Promise<BuildAssistantDeepTurnNormalizationRuntimeOutput> {
|
||||
const followupBinding =
|
||||
const investigationState = input.sessionInvestigationState;
|
||||
const canUseFollowupBinding =
|
||||
input.featureInvestigationStateV1 &&
|
||||
input.featureStateFollowupBindingV1 &&
|
||||
Boolean(input.sessionInvestigationState)
|
||||
investigationState !== null &&
|
||||
investigationState !== undefined;
|
||||
const followupBinding =
|
||||
canUseFollowupBinding
|
||||
? input.buildFollowupStateBinding({
|
||||
userMessage: input.userMessage,
|
||||
payloadContext: input.payload.context,
|
||||
investigationState: input.sessionInvestigationState as unknown
|
||||
investigationState
|
||||
})
|
||||
: {
|
||||
normalizedQuestion: input.userMessage,
|
||||
|
||||
Reference in New Issue
Block a user