ГЛОБАЛЬНЫЙ РЕФАКТОРИНГ АРХИТЕКТУРЫ - Рефакторинг этапов 2.44 - Вынос deep-response склейку из assistantService в новый bridge и Переподключение assistantService на этот адаптер
This commit is contained in:
+116
@@ -0,0 +1,116 @@
|
||||
import type { AssistantMessageResponsePayload } from "../types/assistant";
|
||||
import type { NormalizeResponsePayload } from "../types/normalizer";
|
||||
import type { InvestigationStateWithProblemUnits } from "../types/stage2ProblemUnits";
|
||||
import type { RunAssistantDeepTurnAnalysisRuntimeOutput } from "./assistantDeepTurnAnalysisRuntimeAdapter";
|
||||
import {
|
||||
runAssistantDeepTurnResponseRuntime,
|
||||
type RunAssistantDeepTurnResponseRuntimeInput,
|
||||
type RunAssistantDeepTurnResponseRuntimeOutput
|
||||
} from "./assistantDeepTurnResponseRuntimeAdapter";
|
||||
|
||||
export interface RunAssistantDeepTurnResponseAttemptRuntimeInput<
|
||||
ResponseType = AssistantMessageResponsePayload
|
||||
> {
|
||||
featureInvestigationStateV1: boolean;
|
||||
featureContractsV11: boolean;
|
||||
featureAnswerPolicyV11: boolean;
|
||||
sessionId: string;
|
||||
questionId: string;
|
||||
userMessage: string;
|
||||
normalized: {
|
||||
trace_id: string;
|
||||
prompt_version: string;
|
||||
schema_version: string;
|
||||
normalized: NormalizeResponsePayload["normalized"];
|
||||
};
|
||||
normalizedQuestion: string;
|
||||
deepTurnAnalysisRuntime: RunAssistantDeepTurnAnalysisRuntimeOutput;
|
||||
runtimeAnalysisContext: unknown;
|
||||
followupStateUsage: unknown;
|
||||
followupApplied: boolean;
|
||||
previousInvestigationState: InvestigationStateWithProblemUnits | null | undefined;
|
||||
addressRuntimeMetaForDeep: unknown;
|
||||
extractDroppedIntentSegments: RunAssistantDeepTurnResponseRuntimeInput["extractDroppedIntentSegments"];
|
||||
buildDebugRoutes: RunAssistantDeepTurnResponseRuntimeInput["buildDebugRoutes"];
|
||||
extractExecutionState: RunAssistantDeepTurnResponseRuntimeInput["extractExecutionState"];
|
||||
sanitizeReply: RunAssistantDeepTurnResponseRuntimeInput["sanitizeReply"];
|
||||
persistInvestigationState: RunAssistantDeepTurnResponseRuntimeInput["persistInvestigationState"];
|
||||
messageIdFactory: RunAssistantDeepTurnResponseRuntimeInput["messageIdFactory"];
|
||||
appendItem: RunAssistantDeepTurnResponseRuntimeInput["appendItem"];
|
||||
getSession: RunAssistantDeepTurnResponseRuntimeInput["getSession"];
|
||||
persistSession: RunAssistantDeepTurnResponseRuntimeInput["persistSession"];
|
||||
cloneConversation: RunAssistantDeepTurnResponseRuntimeInput["cloneConversation"];
|
||||
logEvent: RunAssistantDeepTurnResponseRuntimeInput["logEvent"];
|
||||
runPackagingRuntime?: RunAssistantDeepTurnResponseRuntimeInput["runPackagingRuntime"];
|
||||
runFinalizeDeepTurn?: RunAssistantDeepTurnResponseRuntimeInput["runFinalizeDeepTurn"];
|
||||
runDeepTurnResponseRuntime?: (
|
||||
input: RunAssistantDeepTurnResponseRuntimeInput
|
||||
) => RunAssistantDeepTurnResponseRuntimeOutput;
|
||||
}
|
||||
|
||||
export function runAssistantDeepTurnResponseAttemptRuntime<
|
||||
ResponseType = AssistantMessageResponsePayload
|
||||
>(
|
||||
input: RunAssistantDeepTurnResponseAttemptRuntimeInput<ResponseType>
|
||||
): {
|
||||
response: ResponseType;
|
||||
debug: Record<string, unknown>;
|
||||
} {
|
||||
const runDeepTurnResponseRuntimeSafe =
|
||||
input.runDeepTurnResponseRuntime ?? runAssistantDeepTurnResponseRuntime;
|
||||
const analysis = input.deepTurnAnalysisRuntime;
|
||||
const responseRuntime = runDeepTurnResponseRuntimeSafe({
|
||||
featureInvestigationStateV1: input.featureInvestigationStateV1,
|
||||
featureContractsV11: input.featureContractsV11,
|
||||
featureAnswerPolicyV11: input.featureAnswerPolicyV11,
|
||||
sessionId: input.sessionId,
|
||||
questionId: input.questionId,
|
||||
userMessage: input.userMessage,
|
||||
normalized: input.normalized,
|
||||
normalizedQuestion: input.normalizedQuestion,
|
||||
routeSummary: analysis.resolvedRouteSummary,
|
||||
executionPlan: analysis.executionPlan,
|
||||
requirementExtractionRequirements: analysis.requirementExtraction.requirements,
|
||||
coverageEvaluationRequirements: analysis.coverageEvaluation.requirements,
|
||||
coverageReport: analysis.coverageEvaluation.coverage,
|
||||
groundingCheck: analysis.groundingCheck,
|
||||
retrievalCalls: analysis.retrievalCalls,
|
||||
retrievalResultsRaw: analysis.retrievalResultsRaw,
|
||||
retrievalResults: analysis.retrievalResults,
|
||||
questionTypeClass: analysis.questionTypeClass,
|
||||
companyAnchors: analysis.companyAnchors,
|
||||
runtimeAnalysisContext: input.runtimeAnalysisContext,
|
||||
businessScopeResolution: analysis.businessScopeResolution,
|
||||
temporalGuard: analysis.temporalGuard,
|
||||
polarityAudit: analysis.polarityGuardResult.audit,
|
||||
claimAnchorAudit: analysis.claimAnchorAudit,
|
||||
targetedEvidenceAudit: analysis.targetedEvidenceResult.audit,
|
||||
evidenceAdmissibilityGateAudit: analysis.evidenceGateResult.audit,
|
||||
rbpLiveRouteAudit: analysis.rbpLiveRouteAudit,
|
||||
faLiveRouteAudit: analysis.faLiveRouteAudit,
|
||||
groundedAnswerEligibilityGuard: analysis.groundedAnswerEligibilityGuard,
|
||||
followupStateUsage: input.followupStateUsage,
|
||||
followupApplied: input.followupApplied,
|
||||
composition: analysis.composition as any,
|
||||
previousInvestigationState: input.previousInvestigationState ?? null,
|
||||
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: responseRuntime.response as ResponseType,
|
||||
debug: responseRuntime.debug
|
||||
};
|
||||
}
|
||||
@@ -19,10 +19,8 @@ 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 assistantDeepTurnFinalizeRuntimeAdapter_1 from "./assistantDeepTurnFinalizeRuntimeAdapter";
|
||||
import * as assistantDeepTurnPackagingRuntimeAdapter_1 from "./assistantDeepTurnPackagingRuntimeAdapter";
|
||||
import * as assistantDeepTurnNormalizationRuntimeAdapter_1 from "./assistantDeepTurnNormalizationRuntimeAdapter";
|
||||
import * as assistantDeepTurnResponseRuntimeAdapter_1 from "./assistantDeepTurnResponseRuntimeAdapter";
|
||||
import * as assistantDeepTurnResponseAttemptRuntimeAdapter_1 from "./assistantDeepTurnResponseAttemptRuntimeAdapter";
|
||||
import * as assistantAddressRuntimeAdapter_1 from "./assistantAddressRuntimeAdapter";
|
||||
import * as assistantAddressLaneAttemptRuntimeAdapter_1 from "./assistantAddressLaneAttemptRuntimeAdapter";
|
||||
import * as assistantLivingChatAttemptRuntimeAdapter_1 from "./assistantLivingChatAttemptRuntimeAdapter";
|
||||
@@ -4487,27 +4485,7 @@ export class AssistantService {
|
||||
collectFaLiveRouteAudit,
|
||||
hasExplicitPeriodAnchor: (normalizedPayload) => hasExplicitPeriodAnchorFromNormalized(normalizedPayload)
|
||||
});
|
||||
const companyAnchors = deepTurnAnalysisRuntime.companyAnchors;
|
||||
const temporalGuard = deepTurnAnalysisRuntime.temporalGuard;
|
||||
const claimAnchorAudit = deepTurnAnalysisRuntime.claimAnchorAudit;
|
||||
const businessScopeResolution = deepTurnAnalysisRuntime.businessScopeResolution;
|
||||
const resolvedRouteSummary = deepTurnAnalysisRuntime.resolvedRouteSummary;
|
||||
const requirementExtraction = deepTurnAnalysisRuntime.requirementExtraction;
|
||||
const executionPlan = deepTurnAnalysisRuntime.executionPlan;
|
||||
const retrievalCalls = deepTurnAnalysisRuntime.retrievalCalls;
|
||||
const retrievalResultsRaw = deepTurnAnalysisRuntime.retrievalResultsRaw;
|
||||
const retrievalResults = deepTurnAnalysisRuntime.retrievalResults;
|
||||
const polarityGuardResult = deepTurnAnalysisRuntime.polarityGuardResult;
|
||||
const targetedEvidenceResult = deepTurnAnalysisRuntime.targetedEvidenceResult;
|
||||
const evidenceGateResult = deepTurnAnalysisRuntime.evidenceGateResult;
|
||||
const rbpLiveRouteAudit = deepTurnAnalysisRuntime.rbpLiveRouteAudit;
|
||||
const faLiveRouteAudit = deepTurnAnalysisRuntime.faLiveRouteAudit;
|
||||
const coverageEvaluation = deepTurnAnalysisRuntime.coverageEvaluation;
|
||||
const groundedAnswerEligibilityGuard = deepTurnAnalysisRuntime.groundedAnswerEligibilityGuard;
|
||||
const groundingCheck = deepTurnAnalysisRuntime.groundingCheck;
|
||||
const questionTypeClass = deepTurnAnalysisRuntime.questionTypeClass;
|
||||
const composition = deepTurnAnalysisRuntime.composition;
|
||||
const deepTurnResponseRuntime = (0, assistantDeepTurnResponseRuntimeAdapter_1.runAssistantDeepTurnResponseRuntime)({
|
||||
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,
|
||||
@@ -4521,30 +4499,10 @@ export class AssistantService {
|
||||
normalized: normalized.normalized
|
||||
},
|
||||
normalizedQuestion: followupBinding.normalizedQuestion,
|
||||
routeSummary: resolvedRouteSummary,
|
||||
executionPlan,
|
||||
requirementExtractionRequirements: requirementExtraction.requirements,
|
||||
coverageEvaluationRequirements: coverageEvaluation.requirements,
|
||||
coverageReport: coverageEvaluation.coverage,
|
||||
groundingCheck,
|
||||
retrievalCalls,
|
||||
retrievalResultsRaw,
|
||||
retrievalResults,
|
||||
questionTypeClass,
|
||||
companyAnchors,
|
||||
deepTurnAnalysisRuntime,
|
||||
runtimeAnalysisContext,
|
||||
businessScopeResolution,
|
||||
temporalGuard,
|
||||
polarityAudit: polarityGuardResult.audit,
|
||||
claimAnchorAudit,
|
||||
targetedEvidenceAudit: targetedEvidenceResult.audit,
|
||||
evidenceAdmissibilityGateAudit: evidenceGateResult.audit,
|
||||
rbpLiveRouteAudit,
|
||||
faLiveRouteAudit,
|
||||
groundedAnswerEligibilityGuard,
|
||||
followupStateUsage: followupBinding.usage,
|
||||
followupApplied: Boolean(followupBinding.usage?.applied),
|
||||
composition,
|
||||
previousInvestigationState: session.investigation_state,
|
||||
addressRuntimeMetaForDeep,
|
||||
extractDroppedIntentSegments: (normalizedPayload) => extractDiscardedIntentSegments(normalizedPayload),
|
||||
@@ -4557,9 +4515,7 @@ export class AssistantService {
|
||||
getSession: (targetSessionId) => this.sessions.getSession(targetSessionId),
|
||||
persistSession: (sessionState) => this.sessionLogger.persistSession(sessionState),
|
||||
cloneConversation: (items) => cloneItems(items),
|
||||
logEvent: (payload) => (0, log_1.logJson)(payload),
|
||||
runPackagingRuntime: (input) => (0, assistantDeepTurnPackagingRuntimeAdapter_1.runAssistantDeepTurnPackagingRuntime)(input),
|
||||
runFinalizeDeepTurn: (input) => (0, assistantDeepTurnFinalizeRuntimeAdapter_1.finalizeAssistantDeepTurn)(input)
|
||||
logEvent: (payload) => (0, log_1.logJson)(payload)
|
||||
});
|
||||
return deepTurnResponseRuntime.response;
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user