АРЧ ЮИ - остановка прогона через гуй
This commit is contained in:
@@ -54,6 +54,12 @@ import { AssistantSessionStore } from "./assistantSessionStore";
|
||||
import { NormalizerService } from "./normalizerService";
|
||||
import { ensureDir, writeJsonFile } from "../utils/files";
|
||||
|
||||
function throwIfAborted(signal?: AbortSignal): void {
|
||||
if (signal?.aborted) {
|
||||
throw new Error("EVAL_RUN_ABORTED");
|
||||
}
|
||||
}
|
||||
|
||||
interface EvalCaseFile {
|
||||
case_id: string;
|
||||
raw_question: string;
|
||||
@@ -1925,6 +1931,7 @@ export class EvalService {
|
||||
compareWithReportFile?: string;
|
||||
analysisDate?: string;
|
||||
runId?: string;
|
||||
abortSignal?: AbortSignal;
|
||||
}): Promise<Record<string, unknown>> {
|
||||
if (!FEATURE_ASSISTANT_ACCOUNTANT_EVAL_V1) {
|
||||
throw new ApiError(
|
||||
@@ -1943,6 +1950,7 @@ export class EvalService {
|
||||
let requestsTotal = 0;
|
||||
|
||||
for (const suiteCase of suiteCases) {
|
||||
throwIfAborted(payload.abortSignal);
|
||||
const sessionId = `${runId}-${suiteCase.case_id}`;
|
||||
const turnResponses: AssistantMessageResponsePayload[] = [];
|
||||
const notes: string[] = [];
|
||||
@@ -1950,11 +1958,13 @@ export class EvalService {
|
||||
|
||||
try {
|
||||
for (const turn of suiteCase.turns) {
|
||||
throwIfAborted(payload.abortSignal);
|
||||
const response = (await assistantService.handleMessage({
|
||||
session_id: sessionId,
|
||||
user_message: turn.user_message,
|
||||
message: turn.user_message,
|
||||
mode: "assistant",
|
||||
abortSignal: payload.abortSignal,
|
||||
llmProvider: payload.normalizeConfig.llmProvider,
|
||||
apiKey: payload.normalizeConfig.apiKey,
|
||||
model: payload.normalizeConfig.model,
|
||||
@@ -1979,9 +1989,13 @@ export class EvalService {
|
||||
})) as AssistantMessageResponsePayload;
|
||||
turnResponses.push(response);
|
||||
requestsTotal += 1;
|
||||
throwIfAborted(payload.abortSignal);
|
||||
}
|
||||
} catch (error) {
|
||||
const errorMessage = error instanceof Error ? error.message : String(error);
|
||||
if (errorMessage === "EVAL_RUN_ABORTED") {
|
||||
throw error;
|
||||
}
|
||||
diagnostics.push({
|
||||
suite_case: suiteCase,
|
||||
session_id: sessionId,
|
||||
@@ -2634,6 +2648,7 @@ export class EvalService {
|
||||
compareWithReportFile?: string;
|
||||
analysisDate?: string;
|
||||
runId?: string;
|
||||
abortSignal?: AbortSignal;
|
||||
}): Promise<Record<string, unknown>> {
|
||||
const mode = payload.mode ?? "standard";
|
||||
const evalTarget = payload.evalTarget ?? "normalizer";
|
||||
@@ -2648,7 +2663,8 @@ export class EvalService {
|
||||
caseSetFile: payload.caseSetFile,
|
||||
compareWithReportFile: payload.compareWithReportFile,
|
||||
analysisDate: analysisDate ?? undefined,
|
||||
runId: payload.runId
|
||||
runId: payload.runId,
|
||||
abortSignal: payload.abortSignal
|
||||
});
|
||||
}
|
||||
|
||||
|
||||
Reference in New Issue
Block a user