ГЛОБАЛЬНЫЙ РЕФАКТОРИНГ АРХИТЕКТУРЫ - Рефакторинг этапов 2.45 - объединены три выделенных слоя (NormalizationAttempt + AnalysisAttempt + ResponseAttempt) в один assistantDeepTurnAttemptRuntimeAdapter, после чего в handleMessage остался один вызов вместо трёх
This commit is contained in:
@@ -0,0 +1,174 @@
|
||||
import type { AssistantMessageResponsePayload } from "../types/assistant";
|
||||
import type { InvestigationStateWithProblemUnits } from "../types/stage2ProblemUnits";
|
||||
import {
|
||||
buildAssistantDeepTurnNormalizationRuntime,
|
||||
type BuildAssistantDeepTurnNormalizationRuntimeInput,
|
||||
type BuildAssistantDeepTurnNormalizationRuntimeOutput
|
||||
} from "./assistantDeepTurnNormalizationRuntimeAdapter";
|
||||
import {
|
||||
runAssistantDeepTurnAnalysisAttemptRuntime,
|
||||
type RunAssistantDeepTurnAnalysisAttemptRuntimeInput
|
||||
} from "./assistantDeepTurnAnalysisAttemptRuntimeAdapter";
|
||||
import {
|
||||
runAssistantDeepTurnResponseAttemptRuntime,
|
||||
type RunAssistantDeepTurnResponseAttemptRuntimeInput
|
||||
} from "./assistantDeepTurnResponseAttemptRuntimeAdapter";
|
||||
import type { RunAssistantDeepTurnAnalysisRuntimeOutput } from "./assistantDeepTurnAnalysisRuntimeAdapter";
|
||||
|
||||
export interface RunAssistantDeepTurnAttemptRuntimeInput<ResponseType = AssistantMessageResponsePayload> {
|
||||
sessionId: string;
|
||||
questionId: string;
|
||||
userMessage: string;
|
||||
payload: BuildAssistantDeepTurnNormalizationRuntimeInput["payload"];
|
||||
runtimeAnalysisContext: RunAssistantDeepTurnAnalysisAttemptRuntimeInput["runtimeAnalysisContext"];
|
||||
sessionInvestigationState: InvestigationStateWithProblemUnits | null | undefined;
|
||||
addressRuntimeMetaForDeep: unknown;
|
||||
featureInvestigationStateV1: boolean;
|
||||
featureStateFollowupBindingV1: boolean;
|
||||
featureContractsV11: boolean;
|
||||
featureAnswerPolicyV11: boolean;
|
||||
featureProblemCentricAnswerV1: boolean;
|
||||
featureLifecycleAnswerV1: boolean;
|
||||
buildFollowupStateBinding: BuildAssistantDeepTurnNormalizationRuntimeInput["buildFollowupStateBinding"];
|
||||
normalize: BuildAssistantDeepTurnNormalizationRuntimeInput["normalize"];
|
||||
resolveBusinessScopeAlignment: RunAssistantDeepTurnAnalysisAttemptRuntimeInput["resolveBusinessScopeAlignment"];
|
||||
inferP0DomainFromMessage: RunAssistantDeepTurnAnalysisAttemptRuntimeInput["inferP0DomainFromMessage"];
|
||||
resolveBusinessScopeFromLiveContext: RunAssistantDeepTurnAnalysisAttemptRuntimeInput["resolveBusinessScopeFromLiveContext"];
|
||||
extractRequirements: RunAssistantDeepTurnAnalysisAttemptRuntimeInput["extractRequirements"];
|
||||
toExecutionPlan: RunAssistantDeepTurnAnalysisAttemptRuntimeInput["toExecutionPlan"];
|
||||
enforceRbpLiveRoutePlan: RunAssistantDeepTurnAnalysisAttemptRuntimeInput["enforceRbpLiveRoutePlan"];
|
||||
enforceFaLiveRoutePlan: RunAssistantDeepTurnAnalysisAttemptRuntimeInput["enforceFaLiveRoutePlan"];
|
||||
executeRouteRuntime: RunAssistantDeepTurnAnalysisAttemptRuntimeInput["executeRouteRuntime"];
|
||||
mapNoRouteReason: RunAssistantDeepTurnAnalysisAttemptRuntimeInput["mapNoRouteReason"];
|
||||
buildSkippedResult: RunAssistantDeepTurnAnalysisAttemptRuntimeInput["buildSkippedResult"];
|
||||
evaluateCoverage: RunAssistantDeepTurnAnalysisAttemptRuntimeInput["evaluateCoverage"];
|
||||
checkGrounding: RunAssistantDeepTurnAnalysisAttemptRuntimeInput["checkGrounding"];
|
||||
collectRbpLiveRouteAudit: RunAssistantDeepTurnAnalysisAttemptRuntimeInput["collectRbpLiveRouteAudit"];
|
||||
collectFaLiveRouteAudit: RunAssistantDeepTurnAnalysisAttemptRuntimeInput["collectFaLiveRouteAudit"];
|
||||
hasExplicitPeriodAnchor: RunAssistantDeepTurnAnalysisAttemptRuntimeInput["hasExplicitPeriodAnchor"];
|
||||
extractDroppedIntentSegments: RunAssistantDeepTurnResponseAttemptRuntimeInput<ResponseType>["extractDroppedIntentSegments"];
|
||||
buildDebugRoutes: RunAssistantDeepTurnResponseAttemptRuntimeInput<ResponseType>["buildDebugRoutes"];
|
||||
extractExecutionState: RunAssistantDeepTurnResponseAttemptRuntimeInput<ResponseType>["extractExecutionState"];
|
||||
sanitizeReply: RunAssistantDeepTurnResponseAttemptRuntimeInput<ResponseType>["sanitizeReply"];
|
||||
persistInvestigationState: RunAssistantDeepTurnResponseAttemptRuntimeInput<ResponseType>["persistInvestigationState"];
|
||||
messageIdFactory: RunAssistantDeepTurnResponseAttemptRuntimeInput<ResponseType>["messageIdFactory"];
|
||||
appendItem: RunAssistantDeepTurnResponseAttemptRuntimeInput<ResponseType>["appendItem"];
|
||||
getSession: RunAssistantDeepTurnResponseAttemptRuntimeInput<ResponseType>["getSession"];
|
||||
persistSession: RunAssistantDeepTurnResponseAttemptRuntimeInput<ResponseType>["persistSession"];
|
||||
cloneConversation: RunAssistantDeepTurnResponseAttemptRuntimeInput<ResponseType>["cloneConversation"];
|
||||
logEvent: RunAssistantDeepTurnResponseAttemptRuntimeInput<ResponseType>["logEvent"];
|
||||
runPackagingRuntime?: RunAssistantDeepTurnResponseAttemptRuntimeInput<ResponseType>["runPackagingRuntime"];
|
||||
runFinalizeDeepTurn?: RunAssistantDeepTurnResponseAttemptRuntimeInput<ResponseType>["runFinalizeDeepTurn"];
|
||||
runDeepTurnNormalizationRuntime?: (
|
||||
input: BuildAssistantDeepTurnNormalizationRuntimeInput
|
||||
) => Promise<BuildAssistantDeepTurnNormalizationRuntimeOutput>;
|
||||
runDeepTurnAnalysisAttemptRuntime?: (
|
||||
input: RunAssistantDeepTurnAnalysisAttemptRuntimeInput
|
||||
) => Promise<RunAssistantDeepTurnAnalysisRuntimeOutput>;
|
||||
runDeepTurnResponseAttemptRuntime?: (
|
||||
input: RunAssistantDeepTurnResponseAttemptRuntimeInput<ResponseType>
|
||||
) => {
|
||||
response: ResponseType;
|
||||
debug: Record<string, unknown>;
|
||||
};
|
||||
}
|
||||
|
||||
export interface RunAssistantDeepTurnAttemptRuntimeOutput<ResponseType = AssistantMessageResponsePayload> {
|
||||
response: ResponseType;
|
||||
debug: Record<string, unknown>;
|
||||
normalizationRuntime: BuildAssistantDeepTurnNormalizationRuntimeOutput;
|
||||
deepTurnAnalysisRuntime: RunAssistantDeepTurnAnalysisRuntimeOutput;
|
||||
}
|
||||
|
||||
export async function runAssistantDeepTurnAttemptRuntime<ResponseType = AssistantMessageResponsePayload>(
|
||||
input: RunAssistantDeepTurnAttemptRuntimeInput<ResponseType>
|
||||
): Promise<RunAssistantDeepTurnAttemptRuntimeOutput<ResponseType>> {
|
||||
const runDeepTurnNormalizationRuntimeSafe =
|
||||
input.runDeepTurnNormalizationRuntime ?? buildAssistantDeepTurnNormalizationRuntime;
|
||||
const runDeepTurnAnalysisAttemptRuntimeSafe =
|
||||
input.runDeepTurnAnalysisAttemptRuntime ?? runAssistantDeepTurnAnalysisAttemptRuntime;
|
||||
const runDeepTurnResponseAttemptRuntimeSafe =
|
||||
input.runDeepTurnResponseAttemptRuntime ?? runAssistantDeepTurnResponseAttemptRuntime;
|
||||
|
||||
const normalizationRuntime = await runDeepTurnNormalizationRuntimeSafe({
|
||||
userMessage: input.userMessage,
|
||||
payload: input.payload,
|
||||
featureInvestigationStateV1: input.featureInvestigationStateV1,
|
||||
featureStateFollowupBindingV1: input.featureStateFollowupBindingV1,
|
||||
sessionInvestigationState: input.sessionInvestigationState,
|
||||
buildFollowupStateBinding: input.buildFollowupStateBinding,
|
||||
normalize: input.normalize
|
||||
});
|
||||
|
||||
const followupBinding = normalizationRuntime.followupBinding;
|
||||
const normalized = normalizationRuntime.normalized;
|
||||
|
||||
const deepTurnAnalysisRuntime = await runDeepTurnAnalysisAttemptRuntimeSafe({
|
||||
userMessage: input.userMessage,
|
||||
normalizedPayload: normalized.normalized,
|
||||
routeSummary: normalized.route_hint_summary,
|
||||
runtimeAnalysisContext: input.runtimeAnalysisContext,
|
||||
followupUsage: followupBinding.usage,
|
||||
investigationState: input.sessionInvestigationState,
|
||||
featureAnswerPolicyV11: input.featureAnswerPolicyV11,
|
||||
featureProblemCentricAnswerV1: input.featureProblemCentricAnswerV1,
|
||||
featureLifecycleAnswerV1: input.featureLifecycleAnswerV1,
|
||||
resolveBusinessScopeAlignment: input.resolveBusinessScopeAlignment,
|
||||
inferP0DomainFromMessage: input.inferP0DomainFromMessage,
|
||||
resolveBusinessScopeFromLiveContext: input.resolveBusinessScopeFromLiveContext,
|
||||
extractRequirements: input.extractRequirements,
|
||||
toExecutionPlan: input.toExecutionPlan,
|
||||
enforceRbpLiveRoutePlan: input.enforceRbpLiveRoutePlan,
|
||||
enforceFaLiveRoutePlan: input.enforceFaLiveRoutePlan,
|
||||
executeRouteRuntime: input.executeRouteRuntime,
|
||||
mapNoRouteReason: input.mapNoRouteReason,
|
||||
buildSkippedResult: input.buildSkippedResult,
|
||||
evaluateCoverage: input.evaluateCoverage,
|
||||
checkGrounding: input.checkGrounding,
|
||||
collectRbpLiveRouteAudit: input.collectRbpLiveRouteAudit,
|
||||
collectFaLiveRouteAudit: input.collectFaLiveRouteAudit,
|
||||
hasExplicitPeriodAnchor: input.hasExplicitPeriodAnchor
|
||||
});
|
||||
|
||||
const deepTurnResponseRuntime = runDeepTurnResponseAttemptRuntimeSafe({
|
||||
featureInvestigationStateV1: input.featureInvestigationStateV1,
|
||||
featureContractsV11: input.featureContractsV11,
|
||||
featureAnswerPolicyV11: input.featureAnswerPolicyV11,
|
||||
sessionId: input.sessionId,
|
||||
questionId: input.questionId,
|
||||
userMessage: input.userMessage,
|
||||
normalized: {
|
||||
trace_id: normalized.trace_id,
|
||||
prompt_version: normalized.prompt_version,
|
||||
schema_version: normalized.schema_version,
|
||||
normalized: normalized.normalized
|
||||
},
|
||||
normalizedQuestion: followupBinding.normalizedQuestion,
|
||||
deepTurnAnalysisRuntime,
|
||||
runtimeAnalysisContext: input.runtimeAnalysisContext,
|
||||
followupStateUsage: followupBinding.usage,
|
||||
followupApplied: Boolean((followupBinding.usage as { applied?: unknown } | null)?.applied),
|
||||
previousInvestigationState: input.sessionInvestigationState,
|
||||
addressRuntimeMetaForDeep: input.addressRuntimeMetaForDeep,
|
||||
extractDroppedIntentSegments: input.extractDroppedIntentSegments,
|
||||
buildDebugRoutes: input.buildDebugRoutes,
|
||||
extractExecutionState: input.extractExecutionState,
|
||||
sanitizeReply: input.sanitizeReply,
|
||||
persistInvestigationState: input.persistInvestigationState,
|
||||
messageIdFactory: input.messageIdFactory,
|
||||
appendItem: input.appendItem,
|
||||
getSession: input.getSession,
|
||||
persistSession: input.persistSession,
|
||||
cloneConversation: input.cloneConversation,
|
||||
logEvent: input.logEvent,
|
||||
runPackagingRuntime: input.runPackagingRuntime,
|
||||
runFinalizeDeepTurn: input.runFinalizeDeepTurn
|
||||
});
|
||||
|
||||
return {
|
||||
response: deepTurnResponseRuntime.response,
|
||||
debug: deepTurnResponseRuntime.debug,
|
||||
normalizationRuntime,
|
||||
deepTurnAnalysisRuntime
|
||||
};
|
||||
}
|
||||
@@ -18,9 +18,7 @@ import * as capabilitiesRegistry_1 from "./capabilitiesRegistry";
|
||||
import * as assistantCanon_1 from "./assistantCanon";
|
||||
import * as assistantAddressLaneResponseAttemptRuntimeAdapter_1 from "./assistantAddressLaneResponseAttemptRuntimeAdapter";
|
||||
import * as assistantCoverageGrounding_1 from "./assistantCoverageGrounding";
|
||||
import * as assistantDeepTurnAnalysisAttemptRuntimeAdapter_1 from "./assistantDeepTurnAnalysisAttemptRuntimeAdapter";
|
||||
import * as assistantDeepTurnNormalizationRuntimeAdapter_1 from "./assistantDeepTurnNormalizationRuntimeAdapter";
|
||||
import * as assistantDeepTurnResponseAttemptRuntimeAdapter_1 from "./assistantDeepTurnResponseAttemptRuntimeAdapter";
|
||||
import * as assistantDeepTurnAttemptRuntimeAdapter_1 from "./assistantDeepTurnAttemptRuntimeAdapter";
|
||||
import * as assistantAddressRuntimeAdapter_1 from "./assistantAddressRuntimeAdapter";
|
||||
import * as assistantAddressLaneAttemptRuntimeAdapter_1 from "./assistantAddressLaneAttemptRuntimeAdapter";
|
||||
import * as assistantLivingChatAttemptRuntimeAdapter_1 from "./assistantLivingChatAttemptRuntimeAdapter";
|
||||
@@ -4448,27 +4446,22 @@ export class AssistantService {
|
||||
if (addressRuntime.handled && addressRuntime.response) {
|
||||
return addressRuntime.response;
|
||||
}
|
||||
const normalizationRuntime = await (0, assistantDeepTurnNormalizationRuntimeAdapter_1.buildAssistantDeepTurnNormalizationRuntime)({
|
||||
const deepTurnRuntime = await (0, assistantDeepTurnAttemptRuntimeAdapter_1.runAssistantDeepTurnAttemptRuntime)({
|
||||
sessionId,
|
||||
questionId: userItem.message_id,
|
||||
userMessage,
|
||||
payload,
|
||||
runtimeAnalysisContext,
|
||||
sessionInvestigationState: session.investigation_state,
|
||||
addressRuntimeMetaForDeep,
|
||||
featureInvestigationStateV1: config_1.FEATURE_ASSISTANT_INVESTIGATION_STATE_V1,
|
||||
featureStateFollowupBindingV1: config_1.FEATURE_ASSISTANT_STATE_FOLLOWUP_BINDING_V1,
|
||||
sessionInvestigationState: session.investigation_state,
|
||||
buildFollowupStateBinding,
|
||||
normalize: (normalizePayload) => this.normalizerService.normalize(normalizePayload)
|
||||
});
|
||||
const followupBinding = normalizationRuntime.followupBinding;
|
||||
const normalized = normalizationRuntime.normalized;
|
||||
const deepTurnAnalysisRuntime = await (0, assistantDeepTurnAnalysisAttemptRuntimeAdapter_1.runAssistantDeepTurnAnalysisAttemptRuntime)({
|
||||
userMessage,
|
||||
normalizedPayload: normalized.normalized,
|
||||
routeSummary: normalized.route_hint_summary,
|
||||
runtimeAnalysisContext,
|
||||
followupUsage: followupBinding.usage,
|
||||
investigationState: session.investigation_state,
|
||||
featureContractsV11: config_1.FEATURE_ASSISTANT_CONTRACTS_V11,
|
||||
featureAnswerPolicyV11: config_1.FEATURE_ASSISTANT_ANSWER_POLICY_V11,
|
||||
featureProblemCentricAnswerV1: config_1.FEATURE_ASSISTANT_PROBLEM_CENTRIC_ANSWER_V1,
|
||||
featureLifecycleAnswerV1: config_1.FEATURE_ASSISTANT_LIFECYCLE_ANSWER_V1,
|
||||
buildFollowupStateBinding,
|
||||
normalize: (normalizePayload) => this.normalizerService.normalize(normalizePayload),
|
||||
resolveBusinessScopeAlignment,
|
||||
inferP0DomainFromMessage,
|
||||
resolveBusinessScopeFromLiveContext,
|
||||
@@ -4483,28 +4476,7 @@ export class AssistantService {
|
||||
checkGrounding,
|
||||
collectRbpLiveRouteAudit,
|
||||
collectFaLiveRouteAudit,
|
||||
hasExplicitPeriodAnchor: (normalizedPayload) => hasExplicitPeriodAnchorFromNormalized(normalizedPayload)
|
||||
});
|
||||
const deepTurnResponseRuntime = (0, assistantDeepTurnResponseAttemptRuntimeAdapter_1.runAssistantDeepTurnResponseAttemptRuntime)({
|
||||
featureInvestigationStateV1: config_1.FEATURE_ASSISTANT_INVESTIGATION_STATE_V1,
|
||||
featureContractsV11: config_1.FEATURE_ASSISTANT_CONTRACTS_V11,
|
||||
featureAnswerPolicyV11: config_1.FEATURE_ASSISTANT_ANSWER_POLICY_V11,
|
||||
sessionId,
|
||||
questionId: userItem.message_id,
|
||||
userMessage,
|
||||
normalized: {
|
||||
trace_id: normalized.trace_id,
|
||||
prompt_version: normalized.prompt_version,
|
||||
schema_version: normalized.schema_version,
|
||||
normalized: normalized.normalized
|
||||
},
|
||||
normalizedQuestion: followupBinding.normalizedQuestion,
|
||||
deepTurnAnalysisRuntime,
|
||||
runtimeAnalysisContext,
|
||||
followupStateUsage: followupBinding.usage,
|
||||
followupApplied: Boolean(followupBinding.usage?.applied),
|
||||
previousInvestigationState: session.investigation_state,
|
||||
addressRuntimeMetaForDeep,
|
||||
hasExplicitPeriodAnchor: (normalizedPayload) => hasExplicitPeriodAnchorFromNormalized(normalizedPayload),
|
||||
extractDroppedIntentSegments: (normalizedPayload) => extractDiscardedIntentSegments(normalizedPayload),
|
||||
buildDebugRoutes: (routeSummary) => toDebugRoutes(routeSummary),
|
||||
extractExecutionState: (normalizedPayload) => extractExecutionState(normalizedPayload),
|
||||
@@ -4517,6 +4489,6 @@ export class AssistantService {
|
||||
cloneConversation: (items) => cloneItems(items),
|
||||
logEvent: (payload) => (0, log_1.logJson)(payload)
|
||||
});
|
||||
return deepTurnResponseRuntime.response;
|
||||
return deepTurnRuntime.response;
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user