mirror of
https://github.com/infiniflow/ragflow.git
synced 2026-01-19 11:45:10 +08:00
### What problem does this PR solve? Feat: Exported Agent JSON Should Include Conversation Variables Configuration #11796 ### Type of change - [x] New Feature (non-breaking change which adds functionality)
This commit is contained in:
@ -97,6 +97,7 @@ export const EmptyDsl = {
|
||||
retrieval: [], // reference
|
||||
history: [],
|
||||
path: [],
|
||||
variables: [],
|
||||
globals: {
|
||||
[AgentGlobals.SysQuery]: '',
|
||||
[AgentGlobals.SysUserId]: '',
|
||||
|
||||
@ -1,5 +1,6 @@
|
||||
import { useFetchAgent } from '@/hooks/use-agent-request';
|
||||
import { downloadJsonFile } from '@/utils/file-util';
|
||||
import { pick } from 'lodash';
|
||||
import { useCallback } from 'react';
|
||||
import { useBuildDslData } from './use-build-dsl';
|
||||
|
||||
@ -8,7 +9,8 @@ export const useHandleExportJsonFile = () => {
|
||||
const { data } = useFetchAgent();
|
||||
|
||||
const handleExportJson = useCallback(() => {
|
||||
downloadJsonFile(buildDslData().graph, `${data.title}.json`);
|
||||
const dsl = pick(buildDslData(), ['graph', 'globals', 'variables']);
|
||||
downloadJsonFile(dsl, `${data.title}.json`);
|
||||
}, [buildDslData, data.title]);
|
||||
|
||||
return {
|
||||
|
||||
@ -71,6 +71,7 @@ export const DataflowEmptyDsl = {
|
||||
history: [],
|
||||
path: [],
|
||||
globals: {},
|
||||
variables: [],
|
||||
};
|
||||
|
||||
export function useCreateAgentOrPipeline() {
|
||||
|
||||
@ -34,25 +34,36 @@ export const useHandleImportJsonFile = () => {
|
||||
return;
|
||||
}
|
||||
|
||||
const graphStr = await file.text();
|
||||
const graphOrDslStr = await file.text();
|
||||
const errorMessage = t('flow.jsonUploadContentErrorMessage');
|
||||
try {
|
||||
const graph = JSON.parse(graphStr);
|
||||
if (graphStr && !isEmpty(graph) && Array.isArray(graph?.nodes)) {
|
||||
const nodes: Node[] = graph.nodes;
|
||||
|
||||
const graphOrDsl = JSON.parse(graphOrDslStr);
|
||||
if (graphOrDslStr && !isEmpty(graphOrDsl)) {
|
||||
let isAgent = true;
|
||||
// Compatible with older versions
|
||||
const graph = graphOrDsl?.graph ? graphOrDsl.graph : graphOrDsl;
|
||||
if (Array.isArray(graph?.nodes)) {
|
||||
const nodes: Node[] = graph.nodes;
|
||||
|
||||
if (
|
||||
hasNode(nodes, DataflowOperator.Begin) &&
|
||||
hasNode(nodes, DataflowOperator.Parser)
|
||||
) {
|
||||
isAgent = false;
|
||||
if (
|
||||
hasNode(nodes, DataflowOperator.Begin) &&
|
||||
hasNode(nodes, DataflowOperator.Parser)
|
||||
) {
|
||||
isAgent = false;
|
||||
}
|
||||
}
|
||||
|
||||
const dsl = isAgent
|
||||
? { ...EmptyDsl, graph }
|
||||
: { ...DataflowEmptyDsl, graph };
|
||||
? { ...EmptyDsl, graph: graph }
|
||||
: { ...DataflowEmptyDsl, graph: graph };
|
||||
|
||||
if (graphOrDsl.globals) {
|
||||
dsl.globals = graphOrDsl.globals;
|
||||
}
|
||||
|
||||
if (graphOrDsl.variables) {
|
||||
dsl.variables = graphOrDsl.variables;
|
||||
}
|
||||
|
||||
setAgent({
|
||||
title: name,
|
||||
@ -66,6 +77,7 @@ export const useHandleImportJsonFile = () => {
|
||||
message.error(errorMessage);
|
||||
}
|
||||
} catch (error) {
|
||||
console.log('🚀 ~ useHandleImportJsonFile ~ error:', error);
|
||||
message.error(errorMessage);
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user