ГЛОБАЛЬНЫЙ РЕФАКТОРИНГ АРХИТЕКТУРЫ - Рефакторинг этапов 2.12.23: декомпозиция deep-turn пайплайна ассистента в runtime-адаптеры
This commit is contained in:
@@ -0,0 +1,97 @@
|
||||
import type {
|
||||
AssistantReplyType,
|
||||
AssistantRequirement,
|
||||
AnswerGroundingCheck,
|
||||
RequirementCoverageReport,
|
||||
UnifiedRetrievalResult
|
||||
} from "../types/assistant";
|
||||
import type { NormalizedPayload, RouteHintSummary } from "../types/normalizer";
|
||||
import {
|
||||
buildAssistantCoverageContractV1,
|
||||
buildAssistantExecutionPlanContractV1,
|
||||
buildAssistantQueryFrameContractV1,
|
||||
classifyAssistantOutcomeClassV1,
|
||||
type AssistantCoverageContractV1,
|
||||
type AssistantEvidenceBundleContractV1,
|
||||
type AssistantExecutionPlanContractV1,
|
||||
type AssistantOutcomeClassV1,
|
||||
type AssistantQueryFrameContractV1
|
||||
} from "./assistantOrchestrationContracts";
|
||||
|
||||
export interface AssistantContractsBundleV1 {
|
||||
queryFrameContractV1: AssistantQueryFrameContractV1;
|
||||
executionPlanContractV1: AssistantExecutionPlanContractV1;
|
||||
outcomeClassV1: AssistantOutcomeClassV1;
|
||||
coverageContractV1: AssistantCoverageContractV1;
|
||||
assistantOrchestrationContractsV1: {
|
||||
query_frame: AssistantQueryFrameContractV1;
|
||||
execution_plan: AssistantExecutionPlanContractV1;
|
||||
evidence_bundle: AssistantEvidenceBundleContractV1;
|
||||
coverage: AssistantCoverageContractV1;
|
||||
};
|
||||
}
|
||||
|
||||
export function assembleAssistantContractsBundleV1(input: {
|
||||
userMessage: string;
|
||||
normalizedQuestion: string;
|
||||
normalized: NormalizedPayload | null;
|
||||
routeSummary: RouteHintSummary | null;
|
||||
droppedIntentSegments: string[];
|
||||
analysisContext: {
|
||||
as_of_date: string | null;
|
||||
period_from: string | null;
|
||||
period_to: string | null;
|
||||
source: string | null;
|
||||
snapshot_mode: "auto" | "force_snapshot" | "force_live";
|
||||
} | null;
|
||||
executionPlan: Array<{
|
||||
fragment_id: string;
|
||||
requirement_ids: string[];
|
||||
route: string;
|
||||
should_execute: boolean;
|
||||
no_route_reason?: string | null;
|
||||
clarification_reason?: string | null;
|
||||
}>;
|
||||
requirements: AssistantRequirement[];
|
||||
evidenceBundleContractV1: AssistantEvidenceBundleContractV1;
|
||||
replyType: AssistantReplyType;
|
||||
coverageReport: RequirementCoverageReport;
|
||||
grounding: AnswerGroundingCheck;
|
||||
retrievalResults: UnifiedRetrievalResult[];
|
||||
}): AssistantContractsBundleV1 {
|
||||
const queryFrameContractV1 = buildAssistantQueryFrameContractV1({
|
||||
userMessage: input.userMessage,
|
||||
normalizedQuestion: input.normalizedQuestion,
|
||||
normalized: input.normalized,
|
||||
routeSummary: input.routeSummary,
|
||||
droppedIntentSegments: input.droppedIntentSegments,
|
||||
analysisContext: input.analysisContext
|
||||
});
|
||||
const executionPlanContractV1 = buildAssistantExecutionPlanContractV1({
|
||||
executionPlan: input.executionPlan,
|
||||
requirements: input.requirements
|
||||
});
|
||||
const outcomeClassV1 = classifyAssistantOutcomeClassV1({
|
||||
replyType: input.replyType,
|
||||
coverageReport: input.coverageReport,
|
||||
grounding: input.grounding,
|
||||
retrievalResults: input.retrievalResults
|
||||
});
|
||||
const coverageContractV1 = buildAssistantCoverageContractV1({
|
||||
coverageReport: input.coverageReport,
|
||||
grounding: input.grounding,
|
||||
outcomeClass: outcomeClassV1
|
||||
});
|
||||
return {
|
||||
queryFrameContractV1,
|
||||
executionPlanContractV1,
|
||||
outcomeClassV1,
|
||||
coverageContractV1,
|
||||
assistantOrchestrationContractsV1: {
|
||||
query_frame: queryFrameContractV1,
|
||||
execution_plan: executionPlanContractV1,
|
||||
evidence_bundle: input.evidenceBundleContractV1,
|
||||
coverage: coverageContractV1
|
||||
}
|
||||
};
|
||||
}
|
||||
Reference in New Issue
Block a user