ГЛОБАЛЬНЫЙ РЕФАКТОРИНГ АРХИТЕКТУРЫ - Рефакторинг этапов 2.12.23: декомпозиция deep-turn пайплайна ассистента в runtime-адаптеры
This commit is contained in:
@@ -0,0 +1,91 @@
|
||||
import type { AssistantRequirement } from "../types/assistant";
|
||||
import type { NormalizeResponsePayload, RouteHintSummary } from "../types/normalizer";
|
||||
import type { AssistantExecutionPlanItem } from "./assistantQueryPlanning";
|
||||
|
||||
export interface AssistantRequirementExtractionLike {
|
||||
requirements: AssistantRequirement[];
|
||||
byFragment: Map<string, string[]>;
|
||||
}
|
||||
|
||||
export interface AssistantPlanEnforcementAuditLike {
|
||||
executionPlan: AssistantExecutionPlanItem[];
|
||||
audit: unknown;
|
||||
}
|
||||
|
||||
export interface BuildAssistantDeepTurnExecutionPlanInput {
|
||||
routeSummary: RouteHintSummary | null;
|
||||
normalizedPayload: NormalizeResponsePayload["normalized"];
|
||||
userMessage: string;
|
||||
claimType: string;
|
||||
temporalGuard: unknown;
|
||||
domainPolarityGuardInitial: unknown;
|
||||
extractRequirements: (
|
||||
routeSummary: RouteHintSummary | null,
|
||||
normalizedPayload: NormalizeResponsePayload["normalized"],
|
||||
userMessage: string
|
||||
) => AssistantRequirementExtractionLike;
|
||||
toExecutionPlan: (
|
||||
routeSummary: RouteHintSummary | null,
|
||||
normalizedPayload: NormalizeResponsePayload["normalized"],
|
||||
userMessage: string,
|
||||
requirementByFragment: Map<string, string[]>
|
||||
) => AssistantExecutionPlanItem[];
|
||||
enforceRbpLiveRoutePlan: (input: {
|
||||
executionPlan: AssistantExecutionPlanItem[];
|
||||
claimType: string;
|
||||
temporalGuard: unknown;
|
||||
}) => AssistantPlanEnforcementAuditLike;
|
||||
enforceFaLiveRoutePlan: (input: {
|
||||
executionPlan: AssistantExecutionPlanItem[];
|
||||
claimType: string;
|
||||
temporalGuard: unknown;
|
||||
}) => AssistantPlanEnforcementAuditLike;
|
||||
applyTemporalHintToExecutionPlan: (
|
||||
executionPlan: AssistantExecutionPlanItem[],
|
||||
temporalGuard: unknown
|
||||
) => AssistantExecutionPlanItem[];
|
||||
applyPolarityHintToExecutionPlan: (
|
||||
executionPlan: AssistantExecutionPlanItem[],
|
||||
domainPolarityGuardInitial: unknown
|
||||
) => AssistantExecutionPlanItem[];
|
||||
}
|
||||
|
||||
export interface BuildAssistantDeepTurnExecutionPlanOutput {
|
||||
requirementExtraction: AssistantRequirementExtractionLike;
|
||||
executionPlan: AssistantExecutionPlanItem[];
|
||||
rbpRoutePlanEnforcement: AssistantPlanEnforcementAuditLike;
|
||||
faRoutePlanEnforcement: AssistantPlanEnforcementAuditLike;
|
||||
}
|
||||
|
||||
export function buildAssistantDeepTurnExecutionPlan(
|
||||
input: BuildAssistantDeepTurnExecutionPlanInput
|
||||
): BuildAssistantDeepTurnExecutionPlanOutput {
|
||||
const requirementExtraction = input.extractRequirements(input.routeSummary, input.normalizedPayload, input.userMessage);
|
||||
let executionPlan = input.toExecutionPlan(
|
||||
input.routeSummary,
|
||||
input.normalizedPayload,
|
||||
input.userMessage,
|
||||
requirementExtraction.byFragment
|
||||
);
|
||||
const rbpRoutePlanEnforcement = input.enforceRbpLiveRoutePlan({
|
||||
executionPlan,
|
||||
claimType: input.claimType,
|
||||
temporalGuard: input.temporalGuard
|
||||
});
|
||||
executionPlan = rbpRoutePlanEnforcement.executionPlan;
|
||||
const faRoutePlanEnforcement = input.enforceFaLiveRoutePlan({
|
||||
executionPlan,
|
||||
claimType: input.claimType,
|
||||
temporalGuard: input.temporalGuard
|
||||
});
|
||||
executionPlan = faRoutePlanEnforcement.executionPlan;
|
||||
executionPlan = input.applyTemporalHintToExecutionPlan(executionPlan, input.temporalGuard);
|
||||
executionPlan = input.applyPolarityHintToExecutionPlan(executionPlan, input.domainPolarityGuardInitial);
|
||||
|
||||
return {
|
||||
requirementExtraction,
|
||||
executionPlan,
|
||||
rbpRoutePlanEnforcement,
|
||||
faRoutePlanEnforcement
|
||||
};
|
||||
}
|
||||
Reference in New Issue
Block a user