ГЛОБАЛЬНЫЙ РЕФАКТОРИНГ АРХИТЕКТУРЫ - Рефакторинг этапов 2.12.23: декомпозиция deep-turn пайплайна ассистента в runtime-адаптеры

This commit is contained in:
2026-04-10 19:22:40 +03:00
parent 19dbaff741
commit 80d108e506
116 changed files with 13949 additions and 2039 deletions
@@ -0,0 +1,66 @@
import type {
AnswerGroundingCheck,
AssistantRequirement,
RequirementCoverageReport,
UnifiedRetrievalResult
} from "../types/assistant";
import type { NormalizedPayload, RouteHintSummary } from "../types/normalizer";
export interface AssistantRequirementExtractionResult {
requirements: AssistantRequirement[];
byFragment: Map<string, string[]>;
}
export interface AssistantCoverageEvaluationResult {
requirements: AssistantRequirement[];
coverage: RequirementCoverageReport;
}
export interface AssistantCoverageGroundingPipelineInput {
routeSummary: RouteHintSummary | null;
normalized: NormalizedPayload | null | undefined;
userMessage: string;
retrievalResults: UnifiedRetrievalResult[];
requirementExtraction?: AssistantRequirementExtractionResult;
extractRequirements: (
routeSummary: RouteHintSummary | null,
normalized: NormalizedPayload | null | undefined,
userMessage: string
) => AssistantRequirementExtractionResult;
evaluateCoverage: (
requirements: AssistantRequirement[],
retrievalResults: UnifiedRetrievalResult[]
) => AssistantCoverageEvaluationResult;
checkGrounding: (
userMessage: string,
requirements: AssistantRequirement[],
coverage: RequirementCoverageReport,
retrievalResults: UnifiedRetrievalResult[]
) => AnswerGroundingCheck;
}
export interface AssistantCoverageGroundingPipelineOutput {
requirementExtraction: AssistantRequirementExtractionResult;
coverageEvaluation: AssistantCoverageEvaluationResult;
groundingCheckBase: AnswerGroundingCheck;
}
export function runAssistantCoverageGroundingPipeline(
input: AssistantCoverageGroundingPipelineInput
): AssistantCoverageGroundingPipelineOutput {
const requirementExtraction =
input.requirementExtraction ?? input.extractRequirements(input.routeSummary, input.normalized, input.userMessage);
const coverageEvaluation = input.evaluateCoverage(requirementExtraction.requirements, input.retrievalResults);
const groundingCheckBase = input.checkGrounding(
input.userMessage,
coverageEvaluation.requirements,
coverageEvaluation.coverage,
input.retrievalResults
);
return {
requirementExtraction,
coverageEvaluation,
groundingCheckBase
};
}