1682 lines
48 KiB
TypeScript
1682 lines
48 KiB
TypeScript
import { SystemInputEnum } from '../app';
|
||
import { TaskResponseKeyEnum } from '../chat';
|
||
import { FlowModuleTypeEnum, FlowInputItemTypeEnum, FlowOutputItemTypeEnum } from './index';
|
||
import type { AppItemType } from '@/types/app';
|
||
import type { FlowModuleTemplateType } from '@/types/flow';
|
||
import { chatModelList } from '@/store/static';
|
||
import {
|
||
Input_Template_History,
|
||
Input_Template_TFSwitch,
|
||
Input_Template_UserChatInput
|
||
} from './inputTemplate';
|
||
|
||
export const ChatModelSystemTip =
|
||
'模型固定的引导词,通过调整该内容,可以引导模型聊天方向。该内容会被固定在上下文的开头。可使用变量,例如 {{language}}';
|
||
export const ChatModelLimitTip =
|
||
'限定模型对话范围,会被放置在本次提问前,拥有强引导和限定性。可使用变量,例如 {{language}}。引导例子:\n1. 知识库是关于 Laf 的介绍,参考知识库回答问题,与 "Laf" 无关内容,直接回复: "我不知道"。\n2. 你仅回答关于 "xxx" 的问题,其他问题回复: "xxxx"';
|
||
export const userGuideTip = '可以添加特殊的对话前后引导模块,更好的让用户进行对话';
|
||
export const welcomeTextTip =
|
||
'每次对话开始前,发送一个初始内容。支持标准 Markdown 语法,可使用的额外标记:\n[快捷按键]: 用户点击后可以直接发送该问题';
|
||
|
||
export const VariableModule: FlowModuleTemplateType = {
|
||
logo: '/imgs/module/variable.png',
|
||
name: '全局变量',
|
||
intro: '可以在对话开始前,要求用户填写一些内容作为本轮对话的变量。该模块位于开场引导之后。',
|
||
description:
|
||
'全局变量可以通过 {{变量key}} 的形式注入到其他模块的文本中。目前支持:提示词、限定词。',
|
||
flowType: FlowModuleTypeEnum.variable,
|
||
inputs: [
|
||
{
|
||
key: SystemInputEnum.variables,
|
||
type: FlowInputItemTypeEnum.systemInput,
|
||
label: '变量输入',
|
||
value: []
|
||
}
|
||
],
|
||
outputs: []
|
||
};
|
||
export const UserGuideModule: FlowModuleTemplateType = {
|
||
logo: '/imgs/module/userGuide.png',
|
||
name: '用户引导',
|
||
intro: userGuideTip,
|
||
flowType: FlowModuleTypeEnum.userGuide,
|
||
inputs: [
|
||
{
|
||
key: SystemInputEnum.welcomeText,
|
||
type: FlowInputItemTypeEnum.input,
|
||
label: '开场白'
|
||
}
|
||
],
|
||
outputs: []
|
||
};
|
||
export const UserInputModule: FlowModuleTemplateType = {
|
||
logo: '/imgs/module/userChatInput.png',
|
||
name: '用户问题',
|
||
intro: '用户输入的内容。该模块通常作为应用的入口,用户在发送消息后会首先执行该模块。',
|
||
flowType: FlowModuleTypeEnum.questionInput,
|
||
url: '/app/modules/init/userChatInput',
|
||
inputs: [
|
||
{
|
||
key: SystemInputEnum.userChatInput,
|
||
type: FlowInputItemTypeEnum.systemInput,
|
||
label: '用户问题'
|
||
}
|
||
],
|
||
outputs: [
|
||
{
|
||
key: SystemInputEnum.userChatInput,
|
||
label: '用户问题',
|
||
type: FlowOutputItemTypeEnum.source,
|
||
targets: []
|
||
}
|
||
]
|
||
};
|
||
export const HistoryModule: FlowModuleTemplateType = {
|
||
logo: '/imgs/module/history.png',
|
||
name: '聊天记录',
|
||
intro: '用户输入的内容。该模块通常作为应用的入口,用户在发送消息后会首先执行该模块。',
|
||
flowType: FlowModuleTypeEnum.historyNode,
|
||
url: '/app/modules/init/history',
|
||
inputs: [
|
||
{
|
||
key: 'maxContext',
|
||
type: FlowInputItemTypeEnum.numberInput,
|
||
label: '最长记录数',
|
||
value: 6,
|
||
min: 0,
|
||
max: 50
|
||
},
|
||
{
|
||
key: SystemInputEnum.history,
|
||
type: FlowInputItemTypeEnum.hidden,
|
||
label: '聊天记录'
|
||
}
|
||
],
|
||
outputs: [
|
||
{
|
||
key: SystemInputEnum.history,
|
||
label: '聊天记录',
|
||
type: FlowOutputItemTypeEnum.source,
|
||
targets: []
|
||
}
|
||
]
|
||
};
|
||
|
||
const defaultModel = chatModelList[0];
|
||
export const ChatModule: FlowModuleTemplateType = {
|
||
logo: '/imgs/module/AI.png',
|
||
name: 'AI 对话',
|
||
intro: 'AI 大模型对话',
|
||
flowType: FlowModuleTypeEnum.chatNode,
|
||
url: '/app/modules/chat/gpt',
|
||
inputs: [
|
||
{
|
||
key: 'model',
|
||
type: FlowInputItemTypeEnum.custom,
|
||
label: '对话模型',
|
||
value: defaultModel?.model,
|
||
list: chatModelList.map((item) => ({ label: item.name, value: item.model }))
|
||
},
|
||
{
|
||
key: 'temperature',
|
||
type: FlowInputItemTypeEnum.slider,
|
||
label: '温度',
|
||
value: 0,
|
||
min: 0,
|
||
max: 10,
|
||
step: 1,
|
||
markList: [
|
||
{ label: '严谨', value: 0 },
|
||
{ label: '发散', value: 10 }
|
||
]
|
||
},
|
||
{
|
||
key: 'maxToken',
|
||
type: FlowInputItemTypeEnum.custom,
|
||
label: '回复上限',
|
||
value: defaultModel ? defaultModel.contextMaxToken / 2 : 2000,
|
||
min: 100,
|
||
max: defaultModel?.contextMaxToken || 4000,
|
||
step: 50,
|
||
markList: [
|
||
{ label: '100', value: 100 },
|
||
{
|
||
label: `${defaultModel?.contextMaxToken || 4000}`,
|
||
value: defaultModel?.contextMaxToken || 4000
|
||
}
|
||
]
|
||
},
|
||
{
|
||
key: 'systemPrompt',
|
||
type: FlowInputItemTypeEnum.textarea,
|
||
label: '系统提示词',
|
||
description: ChatModelSystemTip,
|
||
placeholder: ChatModelSystemTip,
|
||
value: ''
|
||
},
|
||
{
|
||
key: 'limitPrompt',
|
||
type: FlowInputItemTypeEnum.textarea,
|
||
label: '限定词',
|
||
description: ChatModelLimitTip,
|
||
placeholder: ChatModelLimitTip,
|
||
value: ''
|
||
},
|
||
Input_Template_TFSwitch,
|
||
{
|
||
key: 'quoteQA',
|
||
type: FlowInputItemTypeEnum.target,
|
||
label: '引用内容'
|
||
},
|
||
Input_Template_History,
|
||
Input_Template_UserChatInput
|
||
],
|
||
outputs: [
|
||
{
|
||
key: TaskResponseKeyEnum.answerText,
|
||
label: '模型回复',
|
||
description: '直接响应,无需配置',
|
||
type: FlowOutputItemTypeEnum.hidden,
|
||
targets: []
|
||
}
|
||
]
|
||
};
|
||
|
||
export const KBSearchModule: FlowModuleTemplateType = {
|
||
logo: '/imgs/module/db.png',
|
||
name: '知识库搜索',
|
||
intro: '去知识库中搜索对应的答案。可作为 AI 对话引用参考。',
|
||
flowType: FlowModuleTypeEnum.kbSearchNode,
|
||
url: '/app/modules/kb/search',
|
||
inputs: [
|
||
{
|
||
key: 'kbList',
|
||
type: FlowInputItemTypeEnum.custom,
|
||
label: '关联的知识库',
|
||
value: [],
|
||
list: []
|
||
},
|
||
{
|
||
key: 'similarity',
|
||
type: FlowInputItemTypeEnum.slider,
|
||
label: '相似度',
|
||
value: 0.8,
|
||
min: 0,
|
||
max: 1,
|
||
step: 0.01,
|
||
markList: [
|
||
{ label: '100', value: 100 },
|
||
{ label: '1', value: 1 }
|
||
]
|
||
},
|
||
{
|
||
key: 'limit',
|
||
type: FlowInputItemTypeEnum.slider,
|
||
label: '单次搜索上限',
|
||
description: '最多取 n 条记录作为本次问题引用',
|
||
value: 5,
|
||
min: 1,
|
||
max: 20,
|
||
step: 1,
|
||
markList: [
|
||
{ label: '1', value: 1 },
|
||
{ label: '20', value: 20 }
|
||
]
|
||
},
|
||
Input_Template_TFSwitch,
|
||
Input_Template_UserChatInput
|
||
],
|
||
outputs: [
|
||
{
|
||
key: 'isEmpty',
|
||
label: '搜索结果为空',
|
||
type: FlowOutputItemTypeEnum.source,
|
||
targets: []
|
||
},
|
||
{
|
||
key: 'unEmpty',
|
||
label: '搜索结果不为空',
|
||
type: FlowOutputItemTypeEnum.source,
|
||
targets: []
|
||
},
|
||
{
|
||
key: 'quoteQA',
|
||
label: '引用内容',
|
||
description: '搜索结果为空时不返回',
|
||
type: FlowOutputItemTypeEnum.source,
|
||
targets: []
|
||
}
|
||
]
|
||
};
|
||
|
||
export const AnswerModule: FlowModuleTemplateType = {
|
||
logo: '/imgs/module/reply.png',
|
||
name: '指定回复',
|
||
intro: '该模块可以直接回复一段指定的内容。常用于引导、提示。',
|
||
flowType: FlowModuleTypeEnum.answerNode,
|
||
inputs: [
|
||
Input_Template_TFSwitch,
|
||
{
|
||
key: 'text',
|
||
value: '',
|
||
type: FlowInputItemTypeEnum.textarea,
|
||
label: '回复的内容'
|
||
}
|
||
],
|
||
outputs: []
|
||
};
|
||
export const TFSwitchModule: FlowModuleTemplateType = {
|
||
logo: '',
|
||
name: 'TF开关',
|
||
intro: '可以判断输入的内容为 True 或者 False,从而执行不同操作。',
|
||
flowType: FlowModuleTypeEnum.tfSwitchNode,
|
||
inputs: [
|
||
{
|
||
key: SystemInputEnum.switch,
|
||
type: FlowInputItemTypeEnum.target,
|
||
label: '输入'
|
||
}
|
||
],
|
||
outputs: [
|
||
{
|
||
key: 'true',
|
||
label: 'True',
|
||
type: FlowOutputItemTypeEnum.source,
|
||
targets: []
|
||
},
|
||
{
|
||
key: 'false',
|
||
label: 'False',
|
||
type: FlowOutputItemTypeEnum.source,
|
||
targets: []
|
||
}
|
||
]
|
||
};
|
||
export const ClassifyQuestionModule: FlowModuleTemplateType = {
|
||
logo: '/imgs/module/cq.png',
|
||
name: '问题分类',
|
||
intro: '可以判断用户问题属于哪方面问题,从而执行不同的操作。',
|
||
description:
|
||
'根据用户的历史记录和当前问题判断该次提问的类型。可以添加多组问题类型,下面是一个模板例子:\n类型1: 打招呼\n类型2: 关于 laf 通用问题\n类型3: 关于 laf 代码问题\n类型4: 其他问题',
|
||
url: '/app/modules/agent/classifyQuestion',
|
||
flowType: FlowModuleTypeEnum.classifyQuestion,
|
||
inputs: [
|
||
{
|
||
key: 'systemPrompt',
|
||
type: FlowInputItemTypeEnum.textarea,
|
||
label: '系统提示词',
|
||
description:
|
||
'你可以添加一些特定内容的介绍,从而更好的识别用户的问题类型。这个内容通常是给模型介绍一个它不知道的内容。',
|
||
placeholder: '例如: \n1. Laf 是一个云函数开发平台……\n2. Sealos 是一个集群操作系统',
|
||
value: ''
|
||
},
|
||
Input_Template_History,
|
||
Input_Template_UserChatInput,
|
||
{
|
||
key: 'agents',
|
||
type: FlowInputItemTypeEnum.custom,
|
||
label: '',
|
||
value: [
|
||
{
|
||
value: '打招呼',
|
||
key: 'fasw'
|
||
},
|
||
{
|
||
value: '关于 xxx 的问题',
|
||
key: 'fqsw'
|
||
},
|
||
{
|
||
value: '其他问题',
|
||
key: 'fesw'
|
||
}
|
||
]
|
||
}
|
||
],
|
||
outputs: [
|
||
{
|
||
key: 'fasw',
|
||
label: '',
|
||
type: FlowOutputItemTypeEnum.hidden,
|
||
targets: []
|
||
},
|
||
{
|
||
key: 'fqsw',
|
||
label: '',
|
||
type: FlowOutputItemTypeEnum.hidden,
|
||
targets: []
|
||
},
|
||
{
|
||
key: 'fesw',
|
||
label: '',
|
||
type: FlowOutputItemTypeEnum.hidden,
|
||
targets: []
|
||
}
|
||
]
|
||
};
|
||
export const EmptyModule: FlowModuleTemplateType = {
|
||
logo: '/imgs/module/cq.png',
|
||
name: '该模块已被移除',
|
||
intro: '',
|
||
description: '',
|
||
flowType: FlowModuleTypeEnum.empty,
|
||
inputs: [],
|
||
outputs: []
|
||
};
|
||
|
||
export const ModuleTemplates = [
|
||
{
|
||
label: '输入模块',
|
||
list: [UserInputModule, HistoryModule, VariableModule, UserGuideModule]
|
||
},
|
||
{
|
||
label: '内容生成',
|
||
list: [ChatModule, AnswerModule]
|
||
},
|
||
{
|
||
label: '知识库模块',
|
||
list: [KBSearchModule]
|
||
},
|
||
{
|
||
label: 'Agent',
|
||
list: [ClassifyQuestionModule]
|
||
}
|
||
];
|
||
export const ModuleTemplatesFlat = ModuleTemplates.map((templates) => templates.list)?.flat();
|
||
|
||
// template
|
||
export const appTemplates: (AppItemType & { avatar: string; intro: string })[] = [
|
||
// {
|
||
// id: 'simpleChat',
|
||
// avatar: '/imgs/module/AI.png',
|
||
// name: '简单的对话',
|
||
// intro: '一个极其简单的 AI 对话应用',
|
||
// modules: [
|
||
// {
|
||
// ...UserInputModule,
|
||
// inputs: [
|
||
// {
|
||
// key: 'userChatInput',
|
||
// type: 'systemInput',
|
||
// label: '用户问题',
|
||
// connected: false
|
||
// }
|
||
// ],
|
||
// outputs: [
|
||
// {
|
||
// key: 'userChatInput',
|
||
// label: '用户问题',
|
||
// type: 'source',
|
||
// targets: [
|
||
// {
|
||
// moduleId: '7pacf0',
|
||
// key: 'userChatInput'
|
||
// }
|
||
// ]
|
||
// }
|
||
// ],
|
||
// position: {
|
||
// x: 477.9074315528994,
|
||
// y: 1604.2106242223683
|
||
// },
|
||
// moduleId: '7z5g5h'
|
||
// },
|
||
// {
|
||
// ...ChatModule,
|
||
// inputs: [
|
||
// {
|
||
// key: 'model',
|
||
// type: 'custom',
|
||
// label: '对话模型',
|
||
// value: 'gpt-3.5-turbo-16k',
|
||
// list: [
|
||
// {
|
||
// label: 'FastAI-4k',
|
||
// value: 'gpt-3.5-turbo'
|
||
// },
|
||
// {
|
||
// label: 'FastAI-16k',
|
||
// value: 'gpt-3.5-turbo-16k'
|
||
// },
|
||
// {
|
||
// label: 'FastAI-Plus',
|
||
// value: 'gpt-4'
|
||
// }
|
||
// ],
|
||
// connected: false
|
||
// },
|
||
// {
|
||
// key: 'temperature',
|
||
// type: 'custom',
|
||
// label: '温度',
|
||
// value: 0,
|
||
// min: 0,
|
||
// max: 10,
|
||
// step: 1,
|
||
// markList: [
|
||
// {
|
||
// label: '严谨',
|
||
// value: 0
|
||
// },
|
||
// {
|
||
// label: '发散',
|
||
// value: 10
|
||
// }
|
||
// ],
|
||
// connected: false
|
||
// },
|
||
// {
|
||
// key: 'maxToken',
|
||
// type: 'custom',
|
||
// label: '回复上限',
|
||
// value: 8000,
|
||
// min: 100,
|
||
// max: 16000,
|
||
// step: 50,
|
||
// markList: [
|
||
// {
|
||
// label: '0',
|
||
// value: 0
|
||
// },
|
||
// {
|
||
// label: '16000',
|
||
// value: 16000
|
||
// }
|
||
// ],
|
||
// connected: false
|
||
// },
|
||
// {
|
||
// key: 'systemPrompt',
|
||
// type: 'textarea',
|
||
// label: '系统提示词',
|
||
// description:
|
||
// '模型固定的引导词,通过调整该内容,可以引导模型聊天方向。该内容会被固定在上下文的开头。',
|
||
// placeholder:
|
||
// '模型固定的引导词,通过调整该内容,可以引导模型聊天方向。该内容会被固定在上下文的开头。',
|
||
// value: '',
|
||
// connected: false
|
||
// },
|
||
// {
|
||
// key: 'limitPrompt',
|
||
// type: 'textarea',
|
||
// label: '限定词',
|
||
// description:
|
||
// '限定模型对话范围,会被放置在本次提问前,拥有强引导和限定性。例如:\n1. 知识库是关于 Laf 的介绍,参考知识库回答问题,与 "Laf" 无关内容,直接回复: "我不知道"。\n2. 你仅回答关于 "xxx" 的问题,其他问题回复: "xxxx"',
|
||
// placeholder:
|
||
// '限定模型对话范围,会被放置在本次提问前,拥有强引导和限定性。例如:\n1. 知识库是关于 Laf 的介绍,参考知识库回答问题,与 "Laf" 无关内容,直接回复: "我不知道"。\n2. 你仅回答关于 "xxx" 的问题,其他问题回复: "xxxx"',
|
||
// value: '',
|
||
// connected: false
|
||
// },
|
||
// {
|
||
// key: 'switch',
|
||
// type: 'target',
|
||
// label: '触发器',
|
||
// connected: false
|
||
// },
|
||
// {
|
||
// key: 'quoteQA',
|
||
// type: 'target',
|
||
// label: '引用内容',
|
||
// connected: false
|
||
// },
|
||
// {
|
||
// key: 'history',
|
||
// type: 'target',
|
||
// label: '聊天记录',
|
||
// connected: true
|
||
// },
|
||
// {
|
||
// key: 'userChatInput',
|
||
// type: 'target',
|
||
// label: '用户问题',
|
||
// connected: true
|
||
// }
|
||
// ],
|
||
// outputs: [
|
||
// {
|
||
// key: 'answerText',
|
||
// label: '模型回复',
|
||
// description: '直接响应,无需配置',
|
||
// type: 'hidden',
|
||
// targets: []
|
||
// }
|
||
// ],
|
||
// position: {
|
||
// x: 981.9682828103937,
|
||
// y: 890.014595014464
|
||
// },
|
||
// moduleId: '7pacf0'
|
||
// },
|
||
// {
|
||
// ...HistoryModule,
|
||
// inputs: [
|
||
// {
|
||
// key: 'maxContext',
|
||
// type: 'numberInput',
|
||
// label: '最长记录数',
|
||
// value: 10,
|
||
// min: 0,
|
||
// max: 50,
|
||
// connected: false
|
||
// },
|
||
// {
|
||
// key: 'history',
|
||
// type: 'hidden',
|
||
// label: '聊天记录',
|
||
// connected: false
|
||
// }
|
||
// ],
|
||
// outputs: [
|
||
// {
|
||
// key: 'history',
|
||
// label: '聊天记录',
|
||
// type: 'source',
|
||
// targets: [
|
||
// {
|
||
// moduleId: '7pacf0',
|
||
// key: 'history'
|
||
// }
|
||
// ]
|
||
// }
|
||
// ],
|
||
// position: {
|
||
// x: 452.5466249541586,
|
||
// y: 1276.3930310334215
|
||
// },
|
||
// moduleId: 'xj0c9p'
|
||
// }
|
||
// ]
|
||
// },
|
||
// {
|
||
// id: 'simpleKbChat',
|
||
// avatar: '/imgs/module/db.png',
|
||
// name: '知识库 + 对话引导',
|
||
// intro: '每次提问时进行一次知识库搜索,将搜索结果注入 LLM 模型进行参考回答',
|
||
// modules: [
|
||
// {
|
||
// ...UserInputModule,
|
||
// inputs: [
|
||
// {
|
||
// key: 'userChatInput',
|
||
// type: 'systemInput',
|
||
// label: '用户问题',
|
||
// connected: false
|
||
// }
|
||
// ],
|
||
// outputs: [
|
||
// {
|
||
// key: 'userChatInput',
|
||
// label: '用户问题',
|
||
// type: 'source',
|
||
// targets: [
|
||
// {
|
||
// moduleId: 'q9v14m',
|
||
// key: 'userChatInput'
|
||
// },
|
||
// {
|
||
// moduleId: 'qbf8td',
|
||
// key: 'userChatInput'
|
||
// }
|
||
// ]
|
||
// }
|
||
// ],
|
||
// position: {
|
||
// x: -196.84632684738483,
|
||
// y: 797.3401378431948
|
||
// },
|
||
// moduleId: 'v0nc1s'
|
||
// },
|
||
// {
|
||
// ...HistoryModule,
|
||
// inputs: [
|
||
// {
|
||
// key: 'maxContext',
|
||
// type: 'numberInput',
|
||
// label: '最长记录数',
|
||
// value: 10,
|
||
// min: 0,
|
||
// max: 50,
|
||
// connected: false
|
||
// },
|
||
// {
|
||
// key: 'history',
|
||
// type: 'hidden',
|
||
// label: '聊天记录',
|
||
// connected: false
|
||
// }
|
||
// ],
|
||
// outputs: [
|
||
// {
|
||
// key: 'history',
|
||
// label: '聊天记录',
|
||
// type: 'source',
|
||
// targets: [
|
||
// {
|
||
// moduleId: 'qbf8td',
|
||
// key: 'history'
|
||
// }
|
||
// ]
|
||
// }
|
||
// ],
|
||
// position: {
|
||
// x: 211.58250540918442,
|
||
// y: 611.8700401034965
|
||
// },
|
||
// moduleId: 'k9y3jm'
|
||
// },
|
||
// {
|
||
// ...ChatModule,
|
||
// inputs: [
|
||
// {
|
||
// key: 'model',
|
||
// type: 'custom',
|
||
// label: '对话模型',
|
||
// value: 'gpt-3.5-turbo-16k',
|
||
// list: [
|
||
// {
|
||
// label: 'FastAI-4k',
|
||
// value: 'gpt-3.5-turbo'
|
||
// },
|
||
// {
|
||
// label: 'FastAI-16k',
|
||
// value: 'gpt-3.5-turbo-16k'
|
||
// },
|
||
// {
|
||
// label: 'FastAI-Plus',
|
||
// value: 'gpt-4'
|
||
// }
|
||
// ],
|
||
// connected: false
|
||
// },
|
||
// {
|
||
// key: 'temperature',
|
||
// type: 'custom',
|
||
// label: '温度',
|
||
// value: 0,
|
||
// min: 0,
|
||
// max: 10,
|
||
// step: 1,
|
||
// markList: [
|
||
// {
|
||
// label: '严谨',
|
||
// value: 0
|
||
// },
|
||
// {
|
||
// label: '发散',
|
||
// value: 10
|
||
// }
|
||
// ],
|
||
// connected: false
|
||
// },
|
||
// {
|
||
// key: 'maxToken',
|
||
// type: 'custom',
|
||
// label: '回复上限',
|
||
// value: 8000,
|
||
// min: 100,
|
||
// max: 16000,
|
||
// step: 50,
|
||
// markList: [
|
||
// {
|
||
// label: '0',
|
||
// value: 0
|
||
// },
|
||
// {
|
||
// label: '16000',
|
||
// value: 16000
|
||
// }
|
||
// ],
|
||
// connected: false
|
||
// },
|
||
// {
|
||
// key: 'systemPrompt',
|
||
// type: 'textarea',
|
||
// label: '系统提示词',
|
||
// description:
|
||
// '模型固定的引导词,通过调整该内容,可以引导模型聊天方向。该内容会被固定在上下文的开头。',
|
||
// placeholder:
|
||
// '模型固定的引导词,通过调整该内容,可以引导模型聊天方向。该内容会被固定在上下文的开头。',
|
||
// value: '',
|
||
// connected: false
|
||
// },
|
||
// {
|
||
// key: 'limitPrompt',
|
||
// type: 'textarea',
|
||
// label: '限定词',
|
||
// description:
|
||
// '限定模型对话范围,会被放置在本次提问前,拥有强引导和限定性。例如:\n1. 知识库是关于 Laf 的介绍,参考知识库回答问题,与 "Laf" 无关内容,直接回复: "我不知道"。\n2. 你仅回答关于 "xxx" 的问题,其他问题回复: "xxxx"',
|
||
// placeholder:
|
||
// '限定模型对话范围,会被放置在本次提问前,拥有强引导和限定性。例如:\n1. 知识库是关于 Laf 的介绍,参考知识库回答问题,与 "Laf" 无关内容,直接回复: "我不知道"。\n2. 你仅回答关于 "xxx" 的问题,其他问题回复: "xxxx"',
|
||
// value: '知识库是关于 Laf 的内容,参考知识库回答我的问题。',
|
||
// connected: false
|
||
// },
|
||
// {
|
||
// key: 'switch',
|
||
// type: 'target',
|
||
// label: '触发器',
|
||
// connected: true
|
||
// },
|
||
// {
|
||
// key: 'quoteQA',
|
||
// type: 'target',
|
||
// label: '引用内容',
|
||
// connected: true
|
||
// },
|
||
// {
|
||
// key: 'history',
|
||
// type: 'target',
|
||
// label: '聊天记录',
|
||
// connected: true
|
||
// },
|
||
// {
|
||
// key: 'userChatInput',
|
||
// type: 'target',
|
||
// label: '用户问题',
|
||
// connected: true
|
||
// }
|
||
// ],
|
||
// outputs: [
|
||
// {
|
||
// key: 'answerText',
|
||
// label: '模型回复',
|
||
// description: '直接响应,无需配置',
|
||
// type: 'hidden',
|
||
// targets: []
|
||
// }
|
||
// ],
|
||
// position: {
|
||
// x: 745.484449528062,
|
||
// y: 259.9361900288137
|
||
// },
|
||
// moduleId: 'qbf8td'
|
||
// },
|
||
// {
|
||
// ...KBSearchModule,
|
||
// inputs: [
|
||
// {
|
||
// key: 'kbList',
|
||
// type: 'custom',
|
||
// label: '关联的知识库',
|
||
// value: [],
|
||
// list: [],
|
||
// connected: false
|
||
// },
|
||
// {
|
||
// key: 'similarity',
|
||
// type: 'custom',
|
||
// label: '相似度',
|
||
// value: 0.8,
|
||
// min: 0,
|
||
// max: 1,
|
||
// step: 0.01,
|
||
// markList: [
|
||
// {
|
||
// label: '0',
|
||
// value: 0
|
||
// },
|
||
// {
|
||
// label: '1',
|
||
// value: 1
|
||
// }
|
||
// ],
|
||
// connected: false
|
||
// },
|
||
// {
|
||
// key: 'limit',
|
||
// type: 'custom',
|
||
// label: '单次搜索上限',
|
||
// description: '最多取 n 条记录作为本次问题引用',
|
||
// value: 5,
|
||
// min: 1,
|
||
// max: 20,
|
||
// step: 1,
|
||
// markList: [
|
||
// {
|
||
// label: '1',
|
||
// value: 1
|
||
// },
|
||
// {
|
||
// label: '20',
|
||
// value: 20
|
||
// }
|
||
// ],
|
||
// connected: false
|
||
// },
|
||
// {
|
||
// key: 'switch',
|
||
// type: 'target',
|
||
// label: '触发器',
|
||
// connected: true
|
||
// },
|
||
// {
|
||
// key: 'userChatInput',
|
||
// type: 'target',
|
||
// label: '用户问题',
|
||
// connected: true
|
||
// }
|
||
// ],
|
||
// outputs: [
|
||
// {
|
||
// label: '源搜索数据',
|
||
// type: 'hidden',
|
||
// response: true,
|
||
// targets: []
|
||
// },
|
||
// {
|
||
// key: 'isEmpty',
|
||
// label: '搜索结果为空',
|
||
// type: 'source',
|
||
// targets: [
|
||
// {
|
||
// moduleId: 'w8av9y',
|
||
// key: 'switch'
|
||
// }
|
||
// ]
|
||
// },
|
||
// {
|
||
// key: 'quoteQA',
|
||
// label: '引用内容',
|
||
// description: '搜索结果为空时不返回',
|
||
// type: 'source',
|
||
// targets: [
|
||
// {
|
||
// moduleId: 'qbf8td',
|
||
// key: 'quoteQA'
|
||
// }
|
||
// ]
|
||
// }
|
||
// ],
|
||
// position: {
|
||
// x: 101.2612930583856,
|
||
// y: -31.342317423453437
|
||
// },
|
||
// moduleId: 'q9v14m'
|
||
// },
|
||
// {
|
||
// ...AnswerModule,
|
||
// inputs: [
|
||
// {
|
||
// key: 'switch',
|
||
// type: 'target',
|
||
// label: '触发器',
|
||
// connected: true
|
||
// },
|
||
// {
|
||
// key: 'answerText',
|
||
// value: '对不起,我没有找到你的问题',
|
||
// type: 'input',
|
||
// label: '回复的内容',
|
||
// connected: false
|
||
// }
|
||
// ],
|
||
// outputs: [],
|
||
// position: {
|
||
// x: 673.6108151684664,
|
||
// y: -84.13355134221933
|
||
// },
|
||
// moduleId: 'w8av9y'
|
||
// },
|
||
// {
|
||
// ...UserGuideModule,
|
||
// inputs: [
|
||
// {
|
||
// key: 'welcomeText',
|
||
// type: 'input',
|
||
// label: '开场白',
|
||
// value:
|
||
// '你好,我是 Laf 助手,请问有什么可以帮助你的么?\n[laf 是什么?]\n[官网是多少?]',
|
||
// connected: false
|
||
// }
|
||
// ],
|
||
// outputs: [],
|
||
// position: {
|
||
// x: -338.02984747117785,
|
||
// y: 203.21398144017178
|
||
// },
|
||
// moduleId: 'v7lq0x'
|
||
// }
|
||
// ]
|
||
// },
|
||
// {
|
||
// id: 'chatGuide',
|
||
// avatar: '/imgs/module/userGuide.png',
|
||
// name: '对话引导 + 变量',
|
||
// intro: '可以在对话开始发送一段提示,或者让用户填写一些内容,作为本次对话的变量',
|
||
// modules: [
|
||
// {
|
||
// ...UserInputModule,
|
||
// inputs: [
|
||
// {
|
||
// key: 'userChatInput',
|
||
// type: 'systemInput',
|
||
// label: '用户问题',
|
||
// connected: false
|
||
// }
|
||
// ],
|
||
// outputs: [
|
||
// {
|
||
// key: 'userChatInput',
|
||
// label: '用户问题',
|
||
// type: 'source',
|
||
// targets: [
|
||
// {
|
||
// moduleId: '7pacf0',
|
||
// key: 'userChatInput'
|
||
// }
|
||
// ]
|
||
// }
|
||
// ],
|
||
// position: {
|
||
// x: 485.8457451202796,
|
||
// y: 1601.0352987954163
|
||
// },
|
||
// moduleId: '7z5g5h'
|
||
// },
|
||
// {
|
||
// ...ChatModule,
|
||
// inputs: [
|
||
// {
|
||
// key: 'model',
|
||
// type: 'custom',
|
||
// label: '对话模型',
|
||
// value: 'gpt-3.5-turbo-16k',
|
||
// list: [
|
||
// {
|
||
// label: 'FastAI-4k',
|
||
// value: 'gpt-3.5-turbo'
|
||
// },
|
||
// {
|
||
// label: 'FastAI-16k',
|
||
// value: 'gpt-3.5-turbo-16k'
|
||
// },
|
||
// {
|
||
// label: 'FastAI-Plus',
|
||
// value: 'gpt-4'
|
||
// }
|
||
// ],
|
||
// connected: false
|
||
// },
|
||
// {
|
||
// key: 'temperature',
|
||
// type: 'custom',
|
||
// label: '温度',
|
||
// value: 0,
|
||
// min: 0,
|
||
// max: 10,
|
||
// step: 1,
|
||
// markList: [
|
||
// {
|
||
// label: '严谨',
|
||
// value: 0
|
||
// },
|
||
// {
|
||
// label: '发散',
|
||
// value: 10
|
||
// }
|
||
// ],
|
||
// connected: false
|
||
// },
|
||
// {
|
||
// key: 'maxToken',
|
||
// type: 'custom',
|
||
// label: '回复上限',
|
||
// value: 8000,
|
||
// min: 100,
|
||
// max: 16000,
|
||
// step: 50,
|
||
// markList: [
|
||
// {
|
||
// label: '0',
|
||
// value: 0
|
||
// },
|
||
// {
|
||
// label: '16000',
|
||
// value: 16000
|
||
// }
|
||
// ],
|
||
// connected: false
|
||
// },
|
||
// {
|
||
// key: 'systemPrompt',
|
||
// type: 'textarea',
|
||
// label: '系统提示词',
|
||
// description:
|
||
// '模型固定的引导词,通过调整该内容,可以引导模型聊天方向。该内容会被固定在上下文的开头。',
|
||
// placeholder:
|
||
// '模型固定的引导词,通过调整该内容,可以引导模型聊天方向。该内容会被固定在上下文的开头。',
|
||
// value: '',
|
||
// connected: false
|
||
// },
|
||
// {
|
||
// key: 'limitPrompt',
|
||
// type: 'textarea',
|
||
// label: '限定词',
|
||
// description:
|
||
// '限定模型对话范围,会被放置在本次提问前,拥有强引导和限定性。例如:\n1. 知识库是关于 Laf 的介绍,参考知识库回答问题,与 "Laf" 无关内容,直接回复: "我不知道"。\n2. 你仅回答关于 "xxx" 的问题,其他问题回复: "xxxx"',
|
||
// placeholder:
|
||
// '限定模型对话范围,会被放置在本次提问前,拥有强引导和限定性。例如:\n1. 知识库是关于 Laf 的介绍,参考知识库回答问题,与 "Laf" 无关内容,直接回复: "我不知道"。\n2. 你仅回答关于 "xxx" 的问题,其他问题回复: "xxxx"',
|
||
// value: '将我发送的任何内容,直接翻译成{{language}}',
|
||
// connected: false
|
||
// },
|
||
// {
|
||
// key: 'switch',
|
||
// type: 'target',
|
||
// label: '触发器',
|
||
// connected: false
|
||
// },
|
||
// {
|
||
// key: 'quoteQA',
|
||
// type: 'target',
|
||
// label: '引用内容',
|
||
// connected: false
|
||
// },
|
||
// {
|
||
// key: 'history',
|
||
// type: 'target',
|
||
// label: '聊天记录',
|
||
// connected: true
|
||
// },
|
||
// {
|
||
// key: 'userChatInput',
|
||
// type: 'target',
|
||
// label: '用户问题',
|
||
// connected: true
|
||
// }
|
||
// ],
|
||
// outputs: [
|
||
// {
|
||
// key: 'answerText',
|
||
// label: '模型回复',
|
||
// description: '直接响应,无需配置',
|
||
// type: 'hidden',
|
||
// targets: []
|
||
// }
|
||
// ],
|
||
// position: {
|
||
// x: 981.9682828103937,
|
||
// y: 890.014595014464
|
||
// },
|
||
// moduleId: '7pacf0'
|
||
// },
|
||
// {
|
||
// ...HistoryModule,
|
||
// inputs: [
|
||
// {
|
||
// key: 'maxContext',
|
||
// type: 'numberInput',
|
||
// label: '最长记录数',
|
||
// value: 10,
|
||
// min: 0,
|
||
// max: 50,
|
||
// connected: false
|
||
// },
|
||
// {
|
||
// key: 'history',
|
||
// type: 'hidden',
|
||
// label: '聊天记录',
|
||
// connected: false
|
||
// }
|
||
// ],
|
||
// outputs: [
|
||
// {
|
||
// key: 'history',
|
||
// label: '聊天记录',
|
||
// type: 'source',
|
||
// targets: [
|
||
// {
|
||
// moduleId: '7pacf0',
|
||
// key: 'history'
|
||
// }
|
||
// ]
|
||
// }
|
||
// ],
|
||
// position: {
|
||
// x: 446.2698477029736,
|
||
// y: 1281.1006139718102
|
||
// },
|
||
// moduleId: 'xj0c9p'
|
||
// },
|
||
// {
|
||
// ...VariableModule,
|
||
// inputs: [
|
||
// {
|
||
// key: 'variables',
|
||
// type: 'systemInput',
|
||
// label: '变量输入',
|
||
// value: [
|
||
// {
|
||
// id: 'z3bs2f',
|
||
// key: 'language',
|
||
// label: '目标语言',
|
||
// type: 'select',
|
||
// required: true,
|
||
// maxLen: 50,
|
||
// enums: [
|
||
// {
|
||
// value: '英语'
|
||
// },
|
||
// {
|
||
// value: '法语'
|
||
// },
|
||
// {
|
||
// value: '日语'
|
||
// }
|
||
// ]
|
||
// }
|
||
// ],
|
||
// connected: false
|
||
// }
|
||
// ],
|
||
// outputs: [],
|
||
// position: {
|
||
// x: 513.9049244392417,
|
||
// y: 996.8739106932076
|
||
// },
|
||
// moduleId: '7blchb'
|
||
// },
|
||
// {
|
||
// ...UserGuideModule,
|
||
// inputs: [
|
||
// {
|
||
// key: 'welcomeText',
|
||
// type: 'input',
|
||
// label: '开场白',
|
||
// value: '你好,我是翻译助手,可以帮你翻译任何语言。请告诉我,你需要翻译成什么语言?',
|
||
// connected: false
|
||
// }
|
||
// ],
|
||
// outputs: [],
|
||
// position: {
|
||
// x: 173.17995039750167,
|
||
// y: 982.945778706804
|
||
// },
|
||
// moduleId: 'w35iml'
|
||
// }
|
||
// ]
|
||
// },
|
||
// {
|
||
// id: 'CQ',
|
||
// avatar: '/imgs/module/cq.png',
|
||
// name: '问题分类 + 知识库',
|
||
// intro: '先对用户的问题进行分类,再根据不同类型问题,执行不同的操作',
|
||
// modules: [
|
||
// {
|
||
// ...UserInputModule,
|
||
// inputs: [
|
||
// {
|
||
// key: 'userChatInput',
|
||
// type: 'systemInput',
|
||
// label: '用户问题',
|
||
// connected: false
|
||
// }
|
||
// ],
|
||
// outputs: [
|
||
// {
|
||
// key: 'userChatInput',
|
||
// label: '用户问题',
|
||
// type: 'source',
|
||
// targets: [
|
||
// {
|
||
// moduleId: '3n49vn',
|
||
// key: 'userChatInput'
|
||
// },
|
||
// {
|
||
// moduleId: 's7qnhf',
|
||
// key: 'userChatInput'
|
||
// },
|
||
// {
|
||
// moduleId: '15c9bv',
|
||
// key: 'userChatInput'
|
||
// }
|
||
// ]
|
||
// }
|
||
// ],
|
||
// position: {
|
||
// x: -216.08819066976912,
|
||
// y: 585.9302721518841
|
||
// },
|
||
// moduleId: 'xzj0oo'
|
||
// },
|
||
// {
|
||
// ...HistoryModule,
|
||
// inputs: [
|
||
// {
|
||
// key: 'maxContext',
|
||
// type: 'numberInput',
|
||
// label: '最长记录数',
|
||
// value: 10,
|
||
// min: 0,
|
||
// max: 50,
|
||
// connected: false
|
||
// },
|
||
// {
|
||
// key: 'history',
|
||
// type: 'hidden',
|
||
// label: '聊天记录',
|
||
// connected: false
|
||
// }
|
||
// ],
|
||
// outputs: [
|
||
// {
|
||
// key: 'history',
|
||
// label: '聊天记录',
|
||
// type: 'source',
|
||
// targets: [
|
||
// {
|
||
// moduleId: '3n49vn',
|
||
// key: 'history'
|
||
// }
|
||
// ]
|
||
// }
|
||
// ],
|
||
// position: {
|
||
// x: 1146.0216647621794,
|
||
// y: 236.92269104756855
|
||
// },
|
||
// moduleId: 'hh6of9'
|
||
// },
|
||
// {
|
||
// ...ChatModule,
|
||
// inputs: [
|
||
// {
|
||
// key: 'model',
|
||
// type: 'select',
|
||
// label: '对话模型',
|
||
// value: 'gpt-3.5-turbo',
|
||
// list: [
|
||
// {
|
||
// label: 'FastAI-16k',
|
||
// value: 'gpt-3.5-turbo-16k'
|
||
// },
|
||
// {
|
||
// label: 'FastAI-4k',
|
||
// value: 'gpt-3.5-turbo'
|
||
// },
|
||
// {
|
||
// label: 'FastAI-Plus-8k',
|
||
// value: 'gpt-4'
|
||
// }
|
||
// ],
|
||
// connected: false
|
||
// },
|
||
// {
|
||
// key: 'temperature',
|
||
// type: 'custom',
|
||
// label: '温度',
|
||
// value: 0,
|
||
// min: 0,
|
||
// max: 10,
|
||
// step: 1,
|
||
// markList: [
|
||
// {
|
||
// label: '严谨',
|
||
// value: 0
|
||
// },
|
||
// {
|
||
// label: '发散',
|
||
// value: 10
|
||
// }
|
||
// ],
|
||
// connected: false
|
||
// },
|
||
// {
|
||
// key: 'maxToken',
|
||
// type: 'custom',
|
||
// label: '回复上限',
|
||
// value: 3000,
|
||
// min: 100,
|
||
// max: 4000,
|
||
// step: 50,
|
||
// markList: [
|
||
// {
|
||
// label: '0',
|
||
// value: 0
|
||
// },
|
||
// {
|
||
// label: '4000',
|
||
// value: 4000
|
||
// }
|
||
// ],
|
||
// connected: false
|
||
// },
|
||
// {
|
||
// key: 'systemPrompt',
|
||
// type: 'textarea',
|
||
// label: '系统提示词',
|
||
// description:
|
||
// '模型固定的引导词,通过调整该内容,可以引导模型聊天方向。该内容会被固定在上下文的开头。',
|
||
// placeholder:
|
||
// '模型固定的引导词,通过调整该内容,可以引导模型聊天方向。该内容会被固定在上下文的开头。',
|
||
// value: '你是 Laf 助手,可以回答 Laf 相关问题。',
|
||
// connected: false
|
||
// },
|
||
// {
|
||
// key: 'limitPrompt',
|
||
// type: 'textarea',
|
||
// label: '限定词',
|
||
// description:
|
||
// '限定模型对话范围,会被放置在本次提问前,拥有强引导和限定性。例如:\n1. 知识库是关于 Laf 的介绍,参考知识库回答问题,与 "Laf" 无关内容,直接回复: "我不知道"。\n2. 你仅回答关于 "xxx" 的问题,其他问题回复: "xxxx"',
|
||
// placeholder:
|
||
// '限定模型对话范围,会被放置在本次提问前,拥有强引导和限定性。例如:\n1. 知识库是关于 Laf 的介绍,参考知识库回答问题,与 "Laf" 无关内容,直接回复: "我不知道"。\n2. 你仅回答关于 "xxx" 的问题,其他问题回复: "xxxx"',
|
||
// value: '知识库是 Laf 的内容,参考知识库回答问题。',
|
||
// connected: false
|
||
// },
|
||
// {
|
||
// key: 'switch',
|
||
// type: 'target',
|
||
// label: '触发器',
|
||
// connected: false
|
||
// },
|
||
// {
|
||
// key: 'quoteQA',
|
||
// type: 'target',
|
||
// label: '引用内容',
|
||
// connected: true
|
||
// },
|
||
// {
|
||
// key: 'history',
|
||
// type: 'target',
|
||
// label: '聊天记录',
|
||
// connected: true
|
||
// },
|
||
// {
|
||
// key: 'userChatInput',
|
||
// type: 'target',
|
||
// label: '用户问题',
|
||
// connected: true
|
||
// }
|
||
// ],
|
||
// outputs: [
|
||
// {
|
||
// key: 'answerText',
|
||
// label: '模型回复',
|
||
// description: '直接响应,无需配置',
|
||
// type: 'hidden',
|
||
// targets: []
|
||
// }
|
||
// ],
|
||
// position: {
|
||
// x: 1494.4843114348841,
|
||
// y: -13.57201521210618
|
||
// },
|
||
// moduleId: '3n49vn'
|
||
// },
|
||
// {
|
||
// ...KBSearchModule,
|
||
// inputs: [
|
||
// {
|
||
// key: 'kbList',
|
||
// type: 'custom',
|
||
// label: '关联的知识库',
|
||
// value: [],
|
||
// list: [],
|
||
// connected: false
|
||
// },
|
||
// {
|
||
// key: 'similarity',
|
||
// type: 'custom',
|
||
// label: '相似度',
|
||
// value: 0.8,
|
||
// min: 0,
|
||
// max: 1,
|
||
// step: 0.01,
|
||
// markList: [
|
||
// {
|
||
// label: '0',
|
||
// value: 0
|
||
// },
|
||
// {
|
||
// label: '1',
|
||
// value: 1
|
||
// }
|
||
// ],
|
||
// connected: false
|
||
// },
|
||
// {
|
||
// key: 'limit',
|
||
// type: 'custom',
|
||
// label: '单次搜索上限',
|
||
// description: '最多取 n 条记录作为本次问题引用',
|
||
// value: 5,
|
||
// min: 1,
|
||
// max: 20,
|
||
// step: 1,
|
||
// markList: [
|
||
// {
|
||
// label: '1',
|
||
// value: 1
|
||
// },
|
||
// {
|
||
// label: '20',
|
||
// value: 20
|
||
// }
|
||
// ],
|
||
// connected: false
|
||
// },
|
||
// {
|
||
// key: 'switch',
|
||
// type: 'target',
|
||
// label: '触发器',
|
||
// connected: true
|
||
// },
|
||
// {
|
||
// key: 'userChatInput',
|
||
// type: 'target',
|
||
// label: '用户问题',
|
||
// connected: true
|
||
// }
|
||
// ],
|
||
// outputs: [
|
||
// {
|
||
// label: '源搜索数据',
|
||
// type: 'hidden',
|
||
// response: true,
|
||
// targets: []
|
||
// },
|
||
// {
|
||
// key: 'isEmpty',
|
||
// label: '搜索结果为空',
|
||
// type: 'source',
|
||
// targets: [
|
||
// {
|
||
// moduleId: 'phwr0u',
|
||
// key: 'switch'
|
||
// }
|
||
// ]
|
||
// },
|
||
// {
|
||
// key: 'quoteQA',
|
||
// label: '引用内容',
|
||
// description: '搜索结果为空时不返回',
|
||
// type: 'source',
|
||
// targets: [
|
||
// {
|
||
// moduleId: '3n49vn',
|
||
// key: 'quoteQA'
|
||
// }
|
||
// ]
|
||
// }
|
||
// ],
|
||
// position: {
|
||
// x: 690.1930900957847,
|
||
// y: 102.10119978743109
|
||
// },
|
||
// moduleId: 's7qnhf'
|
||
// },
|
||
// {
|
||
// ...HistoryModule,
|
||
// inputs: [
|
||
// {
|
||
// key: 'maxContext',
|
||
// type: 'numberInput',
|
||
// label: '最长记录数',
|
||
// value: 2,
|
||
// min: 0,
|
||
// max: 50,
|
||
// connected: false
|
||
// },
|
||
// {
|
||
// key: 'history',
|
||
// type: 'hidden',
|
||
// label: '聊天记录',
|
||
// connected: false
|
||
// }
|
||
// ],
|
||
// outputs: [
|
||
// {
|
||
// key: 'history',
|
||
// label: '聊天记录',
|
||
// type: 'source',
|
||
// targets: [
|
||
// {
|
||
// moduleId: '15c9bv',
|
||
// key: 'history'
|
||
// }
|
||
// ]
|
||
// }
|
||
// ],
|
||
// position: {
|
||
// x: -274.2362185453961,
|
||
// y: 152.19755525696058
|
||
// },
|
||
// moduleId: 'qiwrjt'
|
||
// },
|
||
// {
|
||
// ...AnswerModule,
|
||
// inputs: [
|
||
// {
|
||
// key: 'switch',
|
||
// type: 'target',
|
||
// label: '触发器',
|
||
// connected: true
|
||
// },
|
||
// {
|
||
// key: 'answerText',
|
||
// value: '你好,我是 Laf 助手,有什么可以帮助你的么?',
|
||
// type: 'input',
|
||
// label: '回复的内容',
|
||
// connected: false
|
||
// }
|
||
// ],
|
||
// outputs: [],
|
||
// position: {
|
||
// x: 686.1260929408212,
|
||
// y: -142.16731465682332
|
||
// },
|
||
// moduleId: 'l4e36k'
|
||
// },
|
||
// {
|
||
// ...AnswerModule,
|
||
// inputs: [
|
||
// {
|
||
// key: 'switch',
|
||
// type: 'target',
|
||
// label: '触发器',
|
||
// connected: true
|
||
// },
|
||
// {
|
||
// key: 'answerText',
|
||
// value: '对不起,我无法回答你的问题,请问有什么关于 Laf 的问题么?',
|
||
// type: 'input',
|
||
// label: '回复的内容',
|
||
// connected: false
|
||
// }
|
||
// ],
|
||
// outputs: [],
|
||
// position: {
|
||
// x: 1469.3636235179692,
|
||
// y: 937.5555811306511
|
||
// },
|
||
// moduleId: 'phwr0u'
|
||
// },
|
||
// {
|
||
// ...ClassifyQuestionModule,
|
||
// inputs: [
|
||
// {
|
||
// key: 'systemPrompt',
|
||
// type: 'textarea',
|
||
// label: '系统提示词',
|
||
// description:
|
||
// '你可以添加一些特定内容的介绍,从而更好的识别用户的问题类型。这个内容通常是给模型介绍一个它不知道的内容。',
|
||
// placeholder: '例如: \n1. Laf 是一个云函数开发平台……\n2. Sealos 是一个集群操作系统',
|
||
// value:
|
||
// ' laf 是什么\nlaf 是云开发平台,可以快速的开发应用\nlaf 是一个开源的 BaaS 开发平台(Backend as a Service)\nlaf 是一个开箱即用的 serverless 开发平台\nlaf 是一个集「函数计算」、「数据库」、「对象存储」等于一身的一站式开发平台\nlaf 可以是开源版的腾讯云开发、开源版的 Google Firebase、开源版的 UniCloud\nlaf 让每个开发团队都可以随时拥有一个自己的云开发平台!',
|
||
// connected: false
|
||
// },
|
||
// {
|
||
// key: 'history',
|
||
// type: 'target',
|
||
// label: '聊天记录',
|
||
// connected: true
|
||
// },
|
||
// {
|
||
// key: 'userChatInput',
|
||
// type: 'target',
|
||
// label: '用户问题',
|
||
// connected: true
|
||
// },
|
||
// {
|
||
// key: 'agents',
|
||
// type: 'custom',
|
||
// label: '',
|
||
// value: [
|
||
// {
|
||
// value: '打招呼、问候等',
|
||
// key: 'fasw'
|
||
// },
|
||
// {
|
||
// value: '关于 laf 云函数的问题',
|
||
// key: 'fqsw'
|
||
// },
|
||
// {
|
||
// value: '其他问题',
|
||
// key: 'q73b'
|
||
// }
|
||
// ],
|
||
// connected: false
|
||
// }
|
||
// ],
|
||
// outputs: [
|
||
// {
|
||
// key: 'fasw',
|
||
// label: '',
|
||
// type: 'hidden',
|
||
// targets: [
|
||
// {
|
||
// moduleId: 'l4e36k',
|
||
// key: 'switch'
|
||
// }
|
||
// ]
|
||
// },
|
||
// {
|
||
// key: 'fqsw',
|
||
// label: '',
|
||
// type: 'hidden',
|
||
// targets: [
|
||
// {
|
||
// moduleId: 's7qnhf',
|
||
// key: 'switch'
|
||
// }
|
||
// ]
|
||
// },
|
||
// {
|
||
// key: 'q73b',
|
||
// label: '',
|
||
// type: 'hidden',
|
||
// targets: [
|
||
// {
|
||
// moduleId: 'phwr0u',
|
||
// key: 'switch'
|
||
// }
|
||
// ]
|
||
// }
|
||
// ],
|
||
// position: {
|
||
// x: 154.9724540917009,
|
||
// y: -37.48714632270105
|
||
// },
|
||
// moduleId: '15c9bv'
|
||
// }
|
||
// ]
|
||
// }
|
||
];
|