mirror of
https://github.com/infiniflow/ragflow.git
synced 2026-01-30 07:06:39 +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)
111 lines
2.7 KiB
TypeScript
111 lines
2.7 KiB
TypeScript
import { AgentCategory, Operator } from '@/constants/agent';
|
|
import { useSetModalState } from '@/hooks/common-hooks';
|
|
import { EmptyDsl, useSetAgent } from '@/hooks/use-agent-request';
|
|
import { DSL } from '@/interfaces/database/agent';
|
|
|
|
import { FileId, initialParserValues } from '@/pages/agent/constant';
|
|
import { useCallback } from 'react';
|
|
import { FlowType } from '../constant';
|
|
import { FormSchemaType } from '../create-agent-form';
|
|
|
|
export const DataflowEmptyDsl = {
|
|
graph: {
|
|
nodes: [
|
|
{
|
|
id: FileId,
|
|
type: 'beginNode',
|
|
position: {
|
|
x: 50,
|
|
y: 200,
|
|
},
|
|
data: {
|
|
label: Operator.File,
|
|
name: Operator.File,
|
|
},
|
|
sourcePosition: 'left',
|
|
targetPosition: 'right',
|
|
},
|
|
{
|
|
data: {
|
|
form: initialParserValues,
|
|
label: 'Parser',
|
|
name: 'Parser_0',
|
|
},
|
|
dragging: false,
|
|
id: 'Parser:HipSignsRhyme',
|
|
measured: {
|
|
height: 57,
|
|
width: 200,
|
|
},
|
|
position: {
|
|
x: 316.99524094206413,
|
|
y: 195.39629819663406,
|
|
},
|
|
selected: true,
|
|
sourcePosition: 'right',
|
|
targetPosition: 'left',
|
|
type: 'parserNode',
|
|
},
|
|
],
|
|
edges: [
|
|
{
|
|
id: 'xy-edge__Filestart-Parser:HipSignsRhymeend',
|
|
source: FileId,
|
|
sourceHandle: 'start',
|
|
target: 'Parser:HipSignsRhyme',
|
|
targetHandle: 'end',
|
|
},
|
|
],
|
|
},
|
|
components: {
|
|
[Operator.File]: {
|
|
obj: {
|
|
component_name: Operator.File,
|
|
params: {},
|
|
},
|
|
downstream: [], // other edge target is downstream, edge source is current node id
|
|
upstream: [], // edge source is upstream, edge target is current node id
|
|
},
|
|
},
|
|
retrieval: [], // reference
|
|
history: [],
|
|
path: [],
|
|
globals: {},
|
|
variables: [],
|
|
};
|
|
|
|
export function useCreateAgentOrPipeline() {
|
|
const { loading, setAgent } = useSetAgent();
|
|
const {
|
|
visible: creatingVisible,
|
|
hideModal: hideCreatingModal,
|
|
showModal: showCreatingModal,
|
|
} = useSetModalState();
|
|
|
|
const handleCreateAgentOrPipeline = useCallback(
|
|
async (data: FormSchemaType) => {
|
|
const isAgent = data.type === FlowType.Agent;
|
|
const ret = await setAgent({
|
|
title: data.name,
|
|
dsl: isAgent ? (EmptyDsl as DSL) : (DataflowEmptyDsl as DSL),
|
|
canvas_category: isAgent
|
|
? AgentCategory.AgentCanvas
|
|
: AgentCategory.DataflowCanvas,
|
|
});
|
|
|
|
if (ret.code === 0) {
|
|
hideCreatingModal();
|
|
}
|
|
},
|
|
[hideCreatingModal, setAgent],
|
|
);
|
|
|
|
return {
|
|
loading: loading,
|
|
creatingVisible,
|
|
hideCreatingModal,
|
|
showCreatingModal,
|
|
handleCreateAgentOrPipeline,
|
|
};
|
|
}
|