Spaces:
Build error
Build error
import { generateNewNode } from '../utils' | |
import { | |
NODE_WIDTH_X_OFFSET, | |
START_INITIAL_POSITION, | |
} from '../constants' | |
import { useIsChatMode } from './use-workflow' | |
import { useNodesInitialData } from './use-nodes-data' | |
export const useWorkflowTemplate = () => { | |
const isChatMode = useIsChatMode() | |
const nodesInitialData = useNodesInitialData() | |
const { newNode: startNode } = generateNewNode({ | |
data: nodesInitialData.start, | |
position: START_INITIAL_POSITION, | |
}) | |
if (isChatMode) { | |
const { newNode: llmNode } = generateNewNode({ | |
id: 'llm', | |
data: { | |
...nodesInitialData.llm, | |
memory: { | |
window: { enabled: false, size: 10 }, | |
}, | |
selected: true, | |
}, | |
position: { | |
x: START_INITIAL_POSITION.x + NODE_WIDTH_X_OFFSET, | |
y: START_INITIAL_POSITION.y, | |
}, | |
} as any) | |
const { newNode: answerNode } = generateNewNode({ | |
id: 'answer', | |
data: { | |
...nodesInitialData.answer, | |
answer: `{{#${llmNode.id}.text#}}`, | |
}, | |
position: { | |
x: START_INITIAL_POSITION.x + NODE_WIDTH_X_OFFSET * 2, | |
y: START_INITIAL_POSITION.y, | |
}, | |
} as any) | |
const startToLlmEdge = { | |
id: `${startNode.id}-${llmNode.id}`, | |
source: startNode.id, | |
sourceHandle: 'source', | |
target: llmNode.id, | |
targetHandle: 'target', | |
} | |
const llmToAnswerEdge = { | |
id: `${llmNode.id}-${answerNode.id}`, | |
source: llmNode.id, | |
sourceHandle: 'source', | |
target: answerNode.id, | |
targetHandle: 'target', | |
} | |
return { | |
nodes: [startNode, llmNode, answerNode], | |
edges: [startToLlmEdge, llmToAnswerEdge], | |
} | |
} | |
else { | |
return { | |
nodes: [startNode], | |
edges: [], | |
} | |
} | |
} | |