ГЛОБАЛЬНЫЙ РЕФАКТОРИНГ АРХИТЕКТУРЫ - Рефакторинг этапов 2.12.23: декомпозиция deep-turn пайплайна ассистента в runtime-адаптеры
This commit is contained in:
@@ -0,0 +1,57 @@
|
||||
import type { NormalizeResponsePayload, RouteHintSummary } from "../types/normalizer";
|
||||
|
||||
export interface AssistantRuntimeAnalysisContextForPrePackaging {
|
||||
active: boolean;
|
||||
as_of_date: string | null;
|
||||
period_from: string | null;
|
||||
period_to: string | null;
|
||||
source: string | null;
|
||||
snapshot_mode: "auto" | "force_snapshot" | "force_live";
|
||||
}
|
||||
|
||||
export interface AssistantAnalysisContextForContract {
|
||||
as_of_date: string | null;
|
||||
period_from: string | null;
|
||||
period_to: string | null;
|
||||
source: string | null;
|
||||
snapshot_mode: "auto" | "force_snapshot" | "force_live";
|
||||
}
|
||||
|
||||
export interface BuildAssistantDeepTurnPrePackagingContextInput {
|
||||
normalizedPayload: NormalizeResponsePayload["normalized"];
|
||||
routeSummary: RouteHintSummary | null;
|
||||
runtimeAnalysisContext: AssistantRuntimeAnalysisContextForPrePackaging;
|
||||
assistantReply: string;
|
||||
extractDroppedIntentSegments: (normalizedPayload: NormalizeResponsePayload["normalized"]) => string[];
|
||||
buildDebugRoutes: (routeSummary: RouteHintSummary | null) => Array<Record<string, unknown>>;
|
||||
extractExecutionState: (normalizedPayload: NormalizeResponsePayload["normalized"]) => unknown;
|
||||
sanitizeReply: (value: string, fallback?: string) => string;
|
||||
}
|
||||
|
||||
export interface AssistantDeepTurnPrePackagingContext {
|
||||
droppedIntentSegments: string[];
|
||||
analysisContextForContract: AssistantAnalysisContextForContract | null;
|
||||
routesForDebug: Array<Record<string, unknown>>;
|
||||
resolvedExecutionState: unknown;
|
||||
safeAssistantReplyBase: string;
|
||||
}
|
||||
|
||||
export function buildAssistantDeepTurnPrePackagingContext(
|
||||
input: BuildAssistantDeepTurnPrePackagingContextInput
|
||||
): AssistantDeepTurnPrePackagingContext {
|
||||
return {
|
||||
droppedIntentSegments: input.extractDroppedIntentSegments(input.normalizedPayload),
|
||||
analysisContextForContract: input.runtimeAnalysisContext.active
|
||||
? {
|
||||
as_of_date: input.runtimeAnalysisContext.as_of_date,
|
||||
period_from: input.runtimeAnalysisContext.period_from,
|
||||
period_to: input.runtimeAnalysisContext.period_to,
|
||||
source: input.runtimeAnalysisContext.source,
|
||||
snapshot_mode: input.runtimeAnalysisContext.snapshot_mode
|
||||
}
|
||||
: null,
|
||||
routesForDebug: input.buildDebugRoutes(input.routeSummary),
|
||||
resolvedExecutionState: input.extractExecutionState(input.normalizedPayload),
|
||||
safeAssistantReplyBase: input.sanitizeReply(input.assistantReply, "Нужны уточнения для надежного ответа.")
|
||||
};
|
||||
}
|
||||
Reference in New Issue
Block a user