ГЛОБАЛЬНЫЙ РЕФАКТОРИНГ АРХИТЕКТУРЫ - Рефакторинг этапов 2.85 - 2.88 - Убран последний as any из backend/src и довел тип debug до конца цепочки deep-turn
This commit is contained in:
@@ -4,6 +4,7 @@ import type { InvestigationStateWithProblemUnits } from "../types/stage2ProblemU
|
||||
import type { QuestionTypeClass } from "./questionTypeResolver";
|
||||
import { resolveQuestionType } from "./questionTypeResolver";
|
||||
import { composeAssistantAnswer } from "./answerComposer";
|
||||
import type { CompanyAnchorSet } from "./companyAnchorResolver";
|
||||
|
||||
export interface BuildAssistantDeepTurnCompositionInput {
|
||||
userMessage: string;
|
||||
@@ -32,6 +33,32 @@ export interface AssistantDeepTurnCompositionOutput {
|
||||
composition: ReturnType<typeof composeAssistantAnswer>;
|
||||
}
|
||||
|
||||
function toStringArray(value: unknown): string[] {
|
||||
if (!Array.isArray(value)) {
|
||||
return [];
|
||||
}
|
||||
return value
|
||||
.map((item) => (typeof item === "string" ? item.trim() : ""))
|
||||
.filter((item) => item.length > 0);
|
||||
}
|
||||
|
||||
function normalizeCompanyAnchorSet(value: unknown): CompanyAnchorSet | null {
|
||||
if (!value || typeof value !== "object" || Array.isArray(value)) {
|
||||
return null;
|
||||
}
|
||||
const source = value as Record<string, unknown>;
|
||||
return {
|
||||
contract_numbers: toStringArray(source.contract_numbers),
|
||||
document_numbers: toStringArray(source.document_numbers),
|
||||
dates: toStringArray(source.dates),
|
||||
amounts: toStringArray(source.amounts),
|
||||
accounts: toStringArray(source.accounts),
|
||||
periods: toStringArray(source.periods),
|
||||
document_types: toStringArray(source.document_types),
|
||||
all: toStringArray(source.all)
|
||||
};
|
||||
}
|
||||
|
||||
export function buildAssistantDeepTurnComposition(
|
||||
input: BuildAssistantDeepTurnCompositionInput
|
||||
): AssistantDeepTurnCompositionOutput {
|
||||
@@ -43,10 +70,7 @@ export function buildAssistantDeepTurnComposition(
|
||||
? input.investigationState?.followup_context?.active_domain ?? input.investigationState?.focus.domain ?? null
|
||||
: null;
|
||||
const questionTypeClass = resolveQuestionTypeSafe(input.userMessage);
|
||||
const companyAnchorSet = input.companyAnchors as {
|
||||
dates?: unknown[];
|
||||
periods?: unknown[];
|
||||
} | null;
|
||||
const companyAnchorSet = normalizeCompanyAnchorSet(input.companyAnchors);
|
||||
const hasPeriodInCompanyAnchors =
|
||||
(Array.isArray(companyAnchorSet?.dates) && companyAnchorSet.dates.some((item) => String(item ?? "").trim().length > 0)) ||
|
||||
(Array.isArray(companyAnchorSet?.periods) && companyAnchorSet.periods.some((item) => String(item ?? "").trim().length > 0));
|
||||
@@ -60,7 +84,7 @@ export function buildAssistantDeepTurnComposition(
|
||||
groundingCheck: input.groundingCheck,
|
||||
focusDomainHint,
|
||||
questionTypeHint: questionTypeClass,
|
||||
companyAnchors: input.companyAnchors as any,
|
||||
companyAnchors: companyAnchorSet,
|
||||
normalizationPeriodExplicit,
|
||||
enableAnswerPolicyV11: input.featureAnswerPolicyV11,
|
||||
enableProblemCentricAnswerV1: input.featureProblemCentricAnswerV1,
|
||||
|
||||
Reference in New Issue
Block a user