ГЛОБАЛЬНЫЙ РЕФАКТОРИНГ АРХИТЕКТУРЫ - Рефакторинг этапов 2.2 - Усилена оркестрацию в deep/address гейте и follow-up binding в assistantService.ts. Починен кейс UTF-8 follow-up refinement (теперь followup_state_usage.applied=true в нужном сценарии). Убраны регрессии по assistantLivingRouter и stage3 lifecycle probe. Корректное поведение для llm canonical candidate (чтобы не уезжало в clarification_required там, где должен быть address factual).
This commit is contained in:
@@ -1,4 +1,33 @@
|
||||
import type { AnswerGroundingCheck, RequirementCoverageReport } from "../types/assistant";
|
||||
import type {
|
||||
AssistantDebugRouteRecord,
|
||||
AssistantExecutionStateRecord,
|
||||
AssistantFallbackType,
|
||||
AssistantProblemAnswerMode,
|
||||
AssistantReplyType,
|
||||
AssistantRequirement,
|
||||
UnifiedRetrievalResult,
|
||||
AnswerGroundingCheck,
|
||||
FaLiveRouteAuditDebug,
|
||||
RbpLiveRouteAuditDebug,
|
||||
RequirementCoverageReport
|
||||
} from "../types/assistant";
|
||||
import type { AnswerStructureV11 } from "../types/stage1Contracts";
|
||||
import type { InvestigationStateWithProblemUnits } from "../types/stage2ProblemUnits";
|
||||
import type { ClaimBoundAnchorAudit, TargetedEvidenceAcquisitionAudit } from "./assistantClaimBoundEvidence";
|
||||
import type { AssistantContractsBundleV1 } from "./assistantContractsBundleAssembler";
|
||||
import type { AssistantOutcomeClassV1 } from "./assistantOrchestrationContracts";
|
||||
import type { AssistantFollowupUsage } from "./assistantFollowupUsage";
|
||||
import type { CompanyAnchorSet } from "./companyAnchorResolver";
|
||||
import type {
|
||||
AssistantRetrievalCallRecord,
|
||||
AssistantRetrievalRawResultRecord
|
||||
} from "./assistantDeepTurnRetrievalRuntimeAdapter";
|
||||
import type {
|
||||
DomainPolarityGuardAudit,
|
||||
EvidenceAdmissibilityAudit,
|
||||
GroundedAnswerEligibilityAudit,
|
||||
TemporalGuardAudit
|
||||
} from "./assistantRuntimeGuards";
|
||||
|
||||
export interface DeepAnalysisMessageLogDetailsInput {
|
||||
sessionId: string;
|
||||
@@ -6,18 +35,18 @@ export interface DeepAnalysisMessageLogDetailsInput {
|
||||
userMessage: string;
|
||||
normalizerOutput: unknown;
|
||||
executionPlan: Array<Record<string, unknown>>;
|
||||
resolvedExecutionState: unknown;
|
||||
routes: Array<Record<string, unknown>>;
|
||||
retrievalCalls: Array<Record<string, unknown>>;
|
||||
retrievalResultsRaw: unknown[];
|
||||
retrievalResultsNormalized: unknown[];
|
||||
requirementsExtracted: unknown[];
|
||||
resolvedExecutionState: AssistantExecutionStateRecord[];
|
||||
routes: AssistantDebugRouteRecord[];
|
||||
retrievalCalls: AssistantRetrievalCallRecord[];
|
||||
retrievalResultsRaw: AssistantRetrievalRawResultRecord[];
|
||||
retrievalResultsNormalized: UnifiedRetrievalResult[];
|
||||
requirementsExtracted: AssistantRequirement[];
|
||||
coverageReport: RequirementCoverageReport;
|
||||
groundingCheck: AnswerGroundingCheck;
|
||||
replyType: string;
|
||||
replyType: AssistantReplyType;
|
||||
droppedIntentSegments: string[];
|
||||
questionTypeClass: string;
|
||||
companyAnchors: unknown;
|
||||
companyAnchors: CompanyAnchorSet | null;
|
||||
runtimeAnalysisContext: {
|
||||
active: boolean;
|
||||
as_of_date: string | null;
|
||||
@@ -32,26 +61,26 @@ export interface DeepAnalysisMessageLogDetailsInput {
|
||||
company_grounding_applied?: boolean;
|
||||
scope_resolution_reason?: string[];
|
||||
};
|
||||
temporalGuard: Record<string, unknown>;
|
||||
polarityAudit: Record<string, unknown>;
|
||||
claimAnchorAudit: Record<string, unknown>;
|
||||
targetedEvidenceAudit: unknown;
|
||||
evidenceAdmissibilityGateAudit: unknown;
|
||||
rbpLiveRouteAudit: unknown | null;
|
||||
faLiveRouteAudit: unknown | null;
|
||||
groundedAnswerEligibilityGuard: Record<string, unknown>;
|
||||
followupStateUsage: unknown | null;
|
||||
temporalGuard: TemporalGuardAudit;
|
||||
polarityAudit: DomainPolarityGuardAudit;
|
||||
claimAnchorAudit: ClaimBoundAnchorAudit;
|
||||
targetedEvidenceAudit: TargetedEvidenceAcquisitionAudit;
|
||||
evidenceAdmissibilityGateAudit: EvidenceAdmissibilityAudit;
|
||||
rbpLiveRouteAudit: RbpLiveRouteAuditDebug | null;
|
||||
faLiveRouteAudit: FaLiveRouteAuditDebug | null;
|
||||
groundedAnswerEligibilityGuard: GroundedAnswerEligibilityAudit;
|
||||
followupStateUsage: AssistantFollowupUsage | null;
|
||||
compositionDebug: {
|
||||
problem_centric_answer_applied?: boolean;
|
||||
problem_units_used_count?: number;
|
||||
problem_answer_mode?: string;
|
||||
problem_answer_mode?: AssistantProblemAnswerMode;
|
||||
problem_unit_ids_used?: string[];
|
||||
fallback_type?: string;
|
||||
fallback_type?: AssistantFallbackType;
|
||||
};
|
||||
outcomeClassV1: unknown;
|
||||
assistantOrchestrationContractsV1: unknown;
|
||||
answerStructureV11: unknown;
|
||||
investigationStateSnapshot: unknown;
|
||||
outcomeClassV1: AssistantOutcomeClassV1;
|
||||
assistantOrchestrationContractsV1: AssistantContractsBundleV1["assistantOrchestrationContractsV1"];
|
||||
answerStructureV11: AnswerStructureV11 | null;
|
||||
investigationStateSnapshot: InvestigationStateWithProblemUnits | null;
|
||||
assistantReply: string;
|
||||
traceId: string;
|
||||
}
|
||||
@@ -77,7 +106,9 @@ function resolveCoverageStatus(coverageReport: RequirementCoverageReport): "full
|
||||
: "partial_or_limited";
|
||||
}
|
||||
|
||||
export function buildDeepAnalysisProcessedLogDetails(input: DeepAnalysisMessageLogDetailsInput): Record<string, unknown> {
|
||||
export type DeepAnalysisLogDetails = Record<string, unknown>;
|
||||
|
||||
export function buildDeepAnalysisProcessedLogDetails(input: DeepAnalysisMessageLogDetailsInput): DeepAnalysisLogDetails {
|
||||
const analysisContext = toAnalysisContext(input.runtimeAnalysisContext);
|
||||
return {
|
||||
session_id: input.sessionId,
|
||||
|
||||
Reference in New Issue
Block a user