mirror of
https://github.com/infiniflow/ragflow.git
synced 2026-06-29 23:41:12 +08:00
### What problem does this PR solve? add codeexec attachments output ### Type of change - [x] Bug Fix (non-breaking change which fixes an issue)
42 lines
1.1 KiB
TypeScript
42 lines
1.1 KiB
TypeScript
import { Operator } from '../../constant';
|
|
import { CodeOutputContract } from '../../form/code-form/utils';
|
|
|
|
const SYSTEM_OUTPUT_NAMES = new Set([
|
|
'_ERROR',
|
|
'_ARTIFACTS',
|
|
'attachments',
|
|
'_ATTACHMENT_CONTENT',
|
|
]);
|
|
|
|
export type GroupedCodeExecDebugOutput = {
|
|
expectedType: string;
|
|
actualType: string;
|
|
rawResult: unknown;
|
|
content: string;
|
|
systemOutputs: Record<string, unknown>;
|
|
};
|
|
|
|
export function groupCodeExecDebugOutput(
|
|
data: Record<string, unknown> | undefined,
|
|
contract: CodeOutputContract | null,
|
|
): GroupedCodeExecDebugOutput {
|
|
const businessName = contract?.name ?? '';
|
|
const source = data ?? {};
|
|
const systemOutputs = Object.fromEntries(
|
|
Object.entries(source).filter(([key]) => SYSTEM_OUTPUT_NAMES.has(key)),
|
|
);
|
|
|
|
return {
|
|
expectedType: contract?.type ?? '',
|
|
actualType: String(source.actual_type ?? ''),
|
|
rawResult:
|
|
source.raw_result ?? (businessName ? source[businessName] : undefined),
|
|
content: String(source.content ?? ''),
|
|
systemOutputs,
|
|
};
|
|
}
|
|
|
|
export function shouldUseCodeExecDebugLayout(label?: string): boolean {
|
|
return label === Operator.Code;
|
|
}
|