1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
| import { generateNewNode } from '@/app/components/workflow/utils'
| import {
| NODE_WIDTH_X_OFFSET,
| START_INITIAL_POSITION,
| } from '@/app/components/workflow/constants'
| import { useNodesInitialData } from '@/app/components/workflow/hooks'
| import { useIsChatMode } from './use-is-chat-mode'
|
| 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: [],
| }
| }
| }
|
|