ГЛОБАЛЬНЫЙ РЕФАКТОРИНГ АРХИТЕКТУРЫ - Рефакторинг этапов 2.652.68 - сборка входов turn attempt в новый builder: assistantTurnAttemptInputBuilder.ts / адаптер на builder (убрал inline-сборку payload для address/deep): assistantTurnAttemptRuntimeAdapter.ts / сборку followupContext/options для address lane attempt в новый builder: assistantAddressLaneAttemptQueryOptionsBuilder.ts / адаптер на builder для query options: assistantAddressLaneAttemptRuntimeAdapter.ts
This commit is contained in:
@@ -0,0 +1,28 @@
|
||||
import type { RunAssistantAddressLaneAttemptRuntimeInput } from "./assistantAddressLaneAttemptRuntimeAdapter";
|
||||
|
||||
export function resolveAssistantAddressLaneAttemptFollowupContext(
|
||||
carryMeta: RunAssistantAddressLaneAttemptRuntimeInput["carryMeta"]
|
||||
): Record<string, unknown> | null {
|
||||
return carryMeta?.followupContext && typeof carryMeta.followupContext === "object"
|
||||
? (carryMeta.followupContext as Record<string, unknown>)
|
||||
: null;
|
||||
}
|
||||
|
||||
export interface BuildAssistantAddressLaneAttemptQueryOptionsInput {
|
||||
analysisDateHint: RunAssistantAddressLaneAttemptRuntimeInput["analysisDateHint"];
|
||||
scopedFollowupContext: Record<string, unknown> | null;
|
||||
}
|
||||
|
||||
export function buildAssistantAddressLaneAttemptQueryOptions(
|
||||
input: BuildAssistantAddressLaneAttemptQueryOptionsInput
|
||||
): Parameters<RunAssistantAddressLaneAttemptRuntimeInput["runAddressQueryTryHandle"]>[1] {
|
||||
if (input.scopedFollowupContext) {
|
||||
return {
|
||||
followupContext: input.scopedFollowupContext,
|
||||
analysisDateHint: input.analysisDateHint
|
||||
};
|
||||
}
|
||||
return {
|
||||
analysisDateHint: input.analysisDateHint
|
||||
};
|
||||
}
|
||||
@@ -1,5 +1,9 @@
|
||||
import type { AssistantAddressLaneLike } from "./assistantAddressLaneRuntimeAdapter";
|
||||
import type { AssistantAddressCarryoverLike } from "./assistantAddressOrchestrationRuntimeAdapter";
|
||||
import {
|
||||
buildAssistantAddressLaneAttemptQueryOptions,
|
||||
resolveAssistantAddressLaneAttemptFollowupContext
|
||||
} from "./assistantAddressLaneAttemptQueryOptionsBuilder";
|
||||
|
||||
export interface RunAssistantAddressLaneAttemptRuntimeInput {
|
||||
messageUsed: string;
|
||||
@@ -22,21 +26,16 @@ export interface RunAssistantAddressLaneAttemptRuntimeInput {
|
||||
export async function runAssistantAddressLaneAttemptRuntime(
|
||||
input: RunAssistantAddressLaneAttemptRuntimeInput
|
||||
): Promise<AssistantAddressLaneLike | null> {
|
||||
const followupContext =
|
||||
input.carryMeta?.followupContext && typeof input.carryMeta.followupContext === "object"
|
||||
? (input.carryMeta.followupContext as Record<string, unknown>)
|
||||
: null;
|
||||
const followupContext = resolveAssistantAddressLaneAttemptFollowupContext(input.carryMeta);
|
||||
const scopedFollowupContext = input.mergeFollowupContextWithOrganizationScope(
|
||||
followupContext,
|
||||
input.activeOrganization
|
||||
);
|
||||
if (scopedFollowupContext) {
|
||||
return input.runAddressQueryTryHandle(input.messageUsed, {
|
||||
followupContext: scopedFollowupContext,
|
||||
analysisDateHint: input.analysisDateHint
|
||||
});
|
||||
}
|
||||
return input.runAddressQueryTryHandle(input.messageUsed, {
|
||||
analysisDateHint: input.analysisDateHint
|
||||
});
|
||||
return input.runAddressQueryTryHandle(
|
||||
input.messageUsed,
|
||||
buildAssistantAddressLaneAttemptQueryOptions({
|
||||
analysisDateHint: input.analysisDateHint,
|
||||
scopedFollowupContext
|
||||
})
|
||||
);
|
||||
}
|
||||
|
||||
@@ -0,0 +1,45 @@
|
||||
import type {
|
||||
RunAssistantTurnAttemptRuntimeAddressInput,
|
||||
RunAssistantTurnAttemptRuntimeDeepInput,
|
||||
AssistantSessionOrganizationScopeContext
|
||||
} from "./assistantTurnAttemptRuntimeAdapter";
|
||||
import type { RunAssistantUserTurnBootstrapRuntimeOutput } from "./assistantUserTurnBootstrapRuntimeAdapter";
|
||||
|
||||
export interface BuildAssistantTurnAttemptAddressRuntimeInputInput<PayloadType = unknown> {
|
||||
payload: PayloadType;
|
||||
userTurn: RunAssistantUserTurnBootstrapRuntimeOutput;
|
||||
sessionOrganizationScope: AssistantSessionOrganizationScopeContext;
|
||||
}
|
||||
|
||||
export function buildAssistantTurnAttemptAddressRuntimeInput<PayloadType = unknown>(
|
||||
input: BuildAssistantTurnAttemptAddressRuntimeInputInput<PayloadType>
|
||||
): RunAssistantTurnAttemptRuntimeAddressInput<PayloadType> {
|
||||
return {
|
||||
payload: input.payload,
|
||||
sessionId: input.userTurn.sessionId,
|
||||
userMessage: input.userTurn.userMessage,
|
||||
sessionItems: input.userTurn.session.items,
|
||||
runtimeAnalysisContext: input.userTurn.runtimeAnalysisContext,
|
||||
sessionOrganizationScope: input.sessionOrganizationScope
|
||||
};
|
||||
}
|
||||
|
||||
export interface BuildAssistantTurnAttemptDeepRuntimeInputInput<PayloadType = unknown> {
|
||||
payload: PayloadType;
|
||||
userTurn: RunAssistantUserTurnBootstrapRuntimeOutput;
|
||||
addressRuntimeMetaForDeep: Record<string, unknown> | null;
|
||||
}
|
||||
|
||||
export function buildAssistantTurnAttemptDeepRuntimeInput<PayloadType = unknown>(
|
||||
input: BuildAssistantTurnAttemptDeepRuntimeInputInput<PayloadType>
|
||||
): RunAssistantTurnAttemptRuntimeDeepInput<PayloadType> {
|
||||
return {
|
||||
payload: input.payload,
|
||||
sessionId: input.userTurn.sessionId,
|
||||
questionId: input.userTurn.userItem.message_id,
|
||||
userMessage: input.userTurn.userMessage,
|
||||
runtimeAnalysisContext: input.userTurn.runtimeAnalysisContext,
|
||||
sessionInvestigationState: input.userTurn.session.investigation_state,
|
||||
addressRuntimeMetaForDeep: input.addressRuntimeMetaForDeep
|
||||
};
|
||||
}
|
||||
@@ -1,5 +1,9 @@
|
||||
import type { RunAssistantAddressRuntimeOutput } from "./assistantAddressRuntimeAdapter";
|
||||
import type { RunAssistantUserTurnBootstrapRuntimeOutput } from "./assistantUserTurnBootstrapRuntimeAdapter";
|
||||
import {
|
||||
buildAssistantTurnAttemptAddressRuntimeInput,
|
||||
buildAssistantTurnAttemptDeepRuntimeInput
|
||||
} from "./assistantTurnAttemptInputBuilder";
|
||||
|
||||
export interface AssistantSessionOrganizationScopeContext {
|
||||
knownOrganizations: string[];
|
||||
@@ -57,14 +61,13 @@ export async function runAssistantTurnAttemptRuntime<ResponseType = unknown, Pay
|
||||
userTurn.userMessage,
|
||||
userTurn.session.items
|
||||
);
|
||||
const addressRuntime = await input.runAddressAttemptRuntime({
|
||||
payload: input.payload,
|
||||
sessionId: userTurn.sessionId,
|
||||
userMessage: userTurn.userMessage,
|
||||
sessionItems: userTurn.session.items,
|
||||
runtimeAnalysisContext: userTurn.runtimeAnalysisContext,
|
||||
sessionOrganizationScope
|
||||
});
|
||||
const addressRuntime = await input.runAddressAttemptRuntime(
|
||||
buildAssistantTurnAttemptAddressRuntimeInput({
|
||||
payload: input.payload,
|
||||
userTurn,
|
||||
sessionOrganizationScope
|
||||
})
|
||||
);
|
||||
|
||||
const addressRuntimeMetaForDeep = addressRuntime.addressRuntimeMetaForDeep ?? null;
|
||||
if (addressRuntime.handled && addressRuntime.response) {
|
||||
@@ -77,15 +80,13 @@ export async function runAssistantTurnAttemptRuntime<ResponseType = unknown, Pay
|
||||
};
|
||||
}
|
||||
|
||||
const deepTurnRuntime = await input.runDeepTurnAttemptRuntime({
|
||||
payload: input.payload,
|
||||
sessionId: userTurn.sessionId,
|
||||
questionId: userTurn.userItem.message_id,
|
||||
userMessage: userTurn.userMessage,
|
||||
runtimeAnalysisContext: userTurn.runtimeAnalysisContext,
|
||||
sessionInvestigationState: userTurn.session.investigation_state,
|
||||
addressRuntimeMetaForDeep
|
||||
});
|
||||
const deepTurnRuntime = await input.runDeepTurnAttemptRuntime(
|
||||
buildAssistantTurnAttemptDeepRuntimeInput({
|
||||
payload: input.payload,
|
||||
userTurn,
|
||||
addressRuntimeMetaForDeep
|
||||
})
|
||||
);
|
||||
|
||||
return {
|
||||
response: deepTurnRuntime.response,
|
||||
|
||||
Reference in New Issue
Block a user