1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374 |
- 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 },
- query_prompt_template: '{{#sys.query#}}',
- },
- 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: [],
- }
- }
- }
|