12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273 |
- 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 startNode = generateNewNode({
- data: nodesInitialData.start,
- position: START_INITIAL_POSITION,
- })
- if (isChatMode) {
- const 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 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: [],
- }
- }
- }
|