mirror of
https://github.com/labring/FastGPT.git
synced 2025-07-23 05:12:39 +00:00

* chore(ui): login page & workflow page (#3046) * login page & number input & multirow select & llm select * workflow * adjust nodes * New file upload (#3058) * feat: toolNode aiNode readFileNode adapt new version * update docker-compose * update tip * feat: adapt new file version * perf: file input * fix: ts * feat: add chat history time label (#3024) * feat:add chat and logs time * feat: add chat history time label * code perf * code perf --------- Co-authored-by: 勤劳上班的卑微小张 <jiazhan.zhang@ggimage.com> * add chatType (#3060) * pref: slow query of full text search (#3044) * Adapt findLast api;perf: markdown zh format. (#3066) * perf: context code * fix: adapt findLast api * perf: commercial plugin run error * perf: markdown zh format * perf: dockerfile proxy (#3067) * fix ui (#3065) * fix ui * fix * feat: support array reference multi-select (#3041) * feat: support array reference multi-select * fix build * fix * fix loop multi-select * adjust condition * fix get value * array and non-array conversion * fix plugin input * merge func * feat: iframe code block;perf: workflow selector type (#3076) * feat: iframe code block * perf: workflow selector type * node pluginoutput check (#3074) * feat: View will move when workflow check error;fix: ui refresh error when continuous file upload (#3077) * fix: plugin output check * fix: ui refresh error when continuous file upload * feat: View will move when workflow check error * add dispatch try catch (#3075) * perf: workflow context split (#3083) * perf: workflow context split * perf: context * 4.8.13 test (#3085) * perf: workflow node ui * chat iframe url * feat: support sub route config (#3071) * feat: support sub route config * dockerfile * fix upload * delete unused code * 4.8.13 test (#3087) * fix: image expired * fix: datacard navbar ui * perf: build action * fix: workflow file upload refresh (#3088) * fix: http tool response (#3097) * loop node dynamic height (#3092) * loop node dynamic height * fix * fix * feat: support push chat log (#3093) * feat: custom uid/metadata * to: custom info * fix: chat push latest * feat: add chat log envs * refactor: move timer to pushChatLog * fix: using precise log --------- Co-authored-by: Finley Ge <m13203533462@163.com> * 4.8.13 test (#3098) * perf: loop node refresh * rename context * comment * fix: ts * perf: push chat log * array reference check & node ui (#3100) * feat: loop start add index (#3101) * feat: loop start add index * update doc * 4.8.13 test (#3102) * fix: loop index;edge parent check * perf: reference invalid check * fix: ts * fix: plugin select files and ai response check (#3104) * fix: plugin select files and ai response check * perf: text editor selector;tool call tip;remove invalid image url; * perf: select file * perf: drop files * feat: source id prefix env (#3103) * 4.8.13 test (#3106) * perf: select file * perf: drop files * perf: env template * 4.8.13 test (#3107) * perf: select file * perf: drop files * fix: imple mode adapt files * perf: push chat log (#3109) * fix: share page load title error (#3111) * 4.8.13 perf (#3112) * fix: share page load title error * update file input doc * perf: auto add file urls * perf: auto ser loop node offset height * 4.8.13 test (#3117) * perf: plugin * updat eaction * feat: add more share config (#3120) * feat: add more share config * add i18n en * fix: missing subroute (#3121) * perf: outlink config (#3128) * update action * perf: outlink config * fix: ts (#3129) * 更新 docSite 文档内容 (#3131) * fix: null pointer (#3130) * fix: null pointer * perf: not input text * update doc url * perf: outlink default value (#3134) * update doc (#3136) * 4.8.13 test (#3137) * update doc * perf: completions chat api * Restore docSite content based on upstream/4.8.13-dev (#3138) * Restore docSite content based on upstream/4.8.13-dev * 4813.md缺少更正 * update doc (#3141) --------- Co-authored-by: heheer <heheer@sealos.io> Co-authored-by: papapatrick <109422393+Patrickill@users.noreply.github.com> Co-authored-by: 勤劳上班的卑微小张 <jiazhan.zhang@ggimage.com> Co-authored-by: Finley Ge <32237950+FinleyGe@users.noreply.github.com> Co-authored-by: a.e. <49438478+I-Info@users.noreply.github.com> Co-authored-by: Finley Ge <m13203533462@163.com> Co-authored-by: Jiangween <145003935+Jiangween@users.noreply.github.com>
433 lines
11 KiB
Markdown
433 lines
11 KiB
Markdown
---
|
|
title: '固定开头和结尾内容'
|
|
description: '利用指定回复,创建固定的开头和结尾'
|
|
icon: 'healing'
|
|
draft: false
|
|
toc: true
|
|
weight: 610
|
|
---
|
|
|
|

|
|
|
|

|
|
|
|
|
|
如上图,可以通过指定回复编排一个固定的开头和结尾内容。
|
|
|
|
## 模块编排
|
|
|
|
复制下面配置,点击「高级编排」右上角的导入按键,导入该配置。
|
|
|
|
{{% details title="编排配置" closed="true" %}}
|
|
|
|
```json
|
|
{
|
|
"nodes": [
|
|
{
|
|
"nodeId": "7z5g5h",
|
|
"name": "流程开始",
|
|
"intro": "",
|
|
"avatar": "/imgs/workflow/userChatInput.svg",
|
|
"flowNodeType": "workflowStart",
|
|
"position": {
|
|
"x": -269.50851681351924,
|
|
"y": 1657.6123698022448
|
|
},
|
|
"inputs": [
|
|
{
|
|
"key": "userChatInput",
|
|
"renderTypeList": [
|
|
"reference",
|
|
"textarea"
|
|
],
|
|
"valueType": "string",
|
|
"label": "问题输入",
|
|
"required": true,
|
|
"toolDescription": "用户问题",
|
|
"type": "systemInput",
|
|
"showTargetInApp": false,
|
|
"showTargetInPlugin": false,
|
|
"connected": false,
|
|
"selectedTypeIndex": 0,
|
|
"value": [
|
|
"7z5g5h",
|
|
"userChatInput"
|
|
]
|
|
}
|
|
],
|
|
"outputs": [
|
|
{
|
|
"id": "userChatInput",
|
|
"type": "static",
|
|
"key": "userChatInput",
|
|
"valueType": "string",
|
|
"label": "core.module.input.label.user question"
|
|
}
|
|
]
|
|
},
|
|
{
|
|
"nodeId": "nlfwkc",
|
|
"name": "AI 对话",
|
|
"intro": "AI 大模型对话",
|
|
"avatar": "/imgs/workflow/AI.png",
|
|
"flowNodeType": "chatNode",
|
|
"showStatus": true,
|
|
"position": {
|
|
"x": 907.2058332478431,
|
|
"y": 1348.9992737142143
|
|
},
|
|
"inputs": [
|
|
{
|
|
"key": "model",
|
|
"renderTypeList": [
|
|
"settingLLMModel",
|
|
"reference"
|
|
],
|
|
"label": "core.module.input.label.aiModel",
|
|
"valueType": "string",
|
|
"type": "selectLLMModel",
|
|
"required": true,
|
|
"showTargetInApp": false,
|
|
"showTargetInPlugin": false,
|
|
"value": "gpt-3.5-turbo",
|
|
"connected": false,
|
|
"selectedTypeIndex": 0
|
|
},
|
|
{
|
|
"key": "temperature",
|
|
"renderTypeList": [
|
|
"hidden"
|
|
],
|
|
"label": "",
|
|
"value": 0,
|
|
"valueType": "number",
|
|
"min": 0,
|
|
"max": 10,
|
|
"step": 1,
|
|
"type": "hidden",
|
|
"showTargetInApp": false,
|
|
"showTargetInPlugin": false,
|
|
"connected": false,
|
|
"selectedTypeIndex": 0
|
|
},
|
|
{
|
|
"key": "maxToken",
|
|
"renderTypeList": [
|
|
"hidden"
|
|
],
|
|
"label": "",
|
|
"value": 2000,
|
|
"valueType": "number",
|
|
"min": 100,
|
|
"max": 4000,
|
|
"step": 50,
|
|
"type": "hidden",
|
|
"showTargetInApp": false,
|
|
"showTargetInPlugin": false,
|
|
"connected": false,
|
|
"selectedTypeIndex": 0
|
|
},
|
|
{
|
|
"key": "isResponseAnswerText",
|
|
"renderTypeList": [
|
|
"hidden"
|
|
],
|
|
"label": "",
|
|
"value": true,
|
|
"valueType": "boolean",
|
|
"type": "hidden",
|
|
"showTargetInApp": false,
|
|
"showTargetInPlugin": false,
|
|
"connected": false,
|
|
"selectedTypeIndex": 0
|
|
},
|
|
{
|
|
"key": "quoteTemplate",
|
|
"renderTypeList": [
|
|
"hidden"
|
|
],
|
|
"label": "",
|
|
"valueType": "string",
|
|
"type": "hidden",
|
|
"showTargetInApp": false,
|
|
"showTargetInPlugin": false,
|
|
"connected": false,
|
|
"selectedTypeIndex": 0
|
|
},
|
|
{
|
|
"key": "quotePrompt",
|
|
"renderTypeList": [
|
|
"hidden"
|
|
],
|
|
"label": "",
|
|
"valueType": "string",
|
|
"type": "hidden",
|
|
"showTargetInApp": false,
|
|
"showTargetInPlugin": false,
|
|
"connected": false,
|
|
"selectedTypeIndex": 0
|
|
},
|
|
{
|
|
"key": "systemPrompt",
|
|
"renderTypeList": [
|
|
"textarea",
|
|
"reference"
|
|
],
|
|
"max": 300,
|
|
"valueType": "string",
|
|
"label": "core.ai.Prompt",
|
|
"description": "core.app.tip.chatNodeSystemPromptTip",
|
|
"placeholder": "core.app.tip.chatNodeSystemPromptTip",
|
|
"type": "textarea",
|
|
"showTargetInApp": true,
|
|
"showTargetInPlugin": true,
|
|
"value": "",
|
|
"connected": false,
|
|
"selectedTypeIndex": 0
|
|
},
|
|
{
|
|
"key": "history",
|
|
"renderTypeList": [
|
|
"numberInput",
|
|
"reference"
|
|
],
|
|
"valueType": "chatHistory",
|
|
"label": "core.module.input.label.chat history",
|
|
"required": true,
|
|
"min": 0,
|
|
"max": 30,
|
|
"value": 6,
|
|
"type": "numberInput",
|
|
"showTargetInApp": true,
|
|
"showTargetInPlugin": true,
|
|
"connected": false,
|
|
"selectedTypeIndex": 0
|
|
},
|
|
{
|
|
"key": "userChatInput",
|
|
"renderTypeList": [
|
|
"reference",
|
|
"textarea"
|
|
],
|
|
"valueType": "string",
|
|
"label": "问题输入",
|
|
"required": true,
|
|
"toolDescription": "用户问题",
|
|
"type": "custom",
|
|
"showTargetInApp": true,
|
|
"showTargetInPlugin": true,
|
|
"connected": true,
|
|
"selectedTypeIndex": 0,
|
|
"value": [
|
|
"7z5g5h",
|
|
"userChatInput"
|
|
]
|
|
},
|
|
{
|
|
"key": "quoteQA",
|
|
"renderTypeList": [
|
|
"settingDatasetQuotePrompt"
|
|
],
|
|
"label": "",
|
|
"debugLabel": "知识库引用",
|
|
"description": "core.module.Dataset quote.Input description",
|
|
"valueType": "datasetQuote",
|
|
"type": "target",
|
|
"showTargetInApp": true,
|
|
"showTargetInPlugin": true,
|
|
"connected": true,
|
|
"selectedTypeIndex": 0,
|
|
"value": [
|
|
"fljhzy",
|
|
"quoteQA"
|
|
]
|
|
}
|
|
],
|
|
"outputs": [
|
|
{
|
|
"id": "answerText",
|
|
"type": "static",
|
|
"key": "answerText",
|
|
"valueType": "string",
|
|
"label": "core.module.output.label.Ai response content",
|
|
"description": "core.module.output.description.Ai response content"
|
|
},
|
|
{
|
|
"id": "history",
|
|
"type": "static",
|
|
"key": "history",
|
|
"valueType": "chatHistory",
|
|
"label": "core.module.output.label.New context",
|
|
"description": "core.module.output.description.New context"
|
|
}
|
|
]
|
|
},
|
|
{
|
|
"nodeId": "q9equb",
|
|
"name": "core.module.template.App system setting",
|
|
"intro": "可以配置应用的系统参数。",
|
|
"avatar": "/imgs/workflow/userGuide.png",
|
|
"flowNodeType": "userGuide",
|
|
"position": {
|
|
"x": -275.92529567956024,
|
|
"y": 1094.1001488133452
|
|
},
|
|
"inputs": [
|
|
{
|
|
"key": "welcomeText",
|
|
"renderTypeList": [
|
|
"hidden"
|
|
],
|
|
"valueType": "string",
|
|
"label": "core.app.Welcome Text",
|
|
"type": "hidden",
|
|
"showTargetInApp": false,
|
|
"showTargetInPlugin": false,
|
|
"value": "你好,我是电影《星际穿越》 AI 助手,有什么可以帮助你的?\n[导演是谁]\n[剧情介绍]\n[票房分析]",
|
|
"connected": false,
|
|
"selectedTypeIndex": 0
|
|
},
|
|
{
|
|
"key": "variables",
|
|
"renderTypeList": [
|
|
"hidden"
|
|
],
|
|
"valueType": "any",
|
|
"label": "core.module.Variable",
|
|
"value": [],
|
|
"type": "hidden",
|
|
"showTargetInApp": false,
|
|
"showTargetInPlugin": false,
|
|
"connected": false,
|
|
"selectedTypeIndex": 0
|
|
},
|
|
{
|
|
"key": "questionGuide",
|
|
"valueType": "boolean",
|
|
"renderTypeList": [
|
|
"hidden"
|
|
],
|
|
"label": "",
|
|
"type": "switch",
|
|
"showTargetInApp": false,
|
|
"showTargetInPlugin": false,
|
|
"connected": false,
|
|
"selectedTypeIndex": 0
|
|
},
|
|
{
|
|
"key": "tts",
|
|
"renderTypeList": [
|
|
"hidden"
|
|
],
|
|
"valueType": "any",
|
|
"label": "",
|
|
"type": "hidden",
|
|
"showTargetInApp": false,
|
|
"showTargetInPlugin": false,
|
|
"connected": false,
|
|
"selectedTypeIndex": 0
|
|
},
|
|
{
|
|
"key": "whisper",
|
|
"renderTypeList": [
|
|
"hidden"
|
|
],
|
|
"valueType": "any",
|
|
"label": ""
|
|
},
|
|
{
|
|
"key": "scheduleTrigger",
|
|
"renderTypeList": [
|
|
"hidden"
|
|
],
|
|
"valueType": "any",
|
|
"label": "",
|
|
"value": null
|
|
}
|
|
],
|
|
"outputs": []
|
|
},
|
|
{
|
|
"nodeId": "tc90wz",
|
|
"name": "指定回复",
|
|
"intro": "该模块可以直接回复一段指定的内容。常用于引导、提示。非字符串内容传入时,会转成字符串进行输出。",
|
|
"avatar": "/imgs/workflow/reply.png",
|
|
"flowNodeType": "answerNode",
|
|
"position": {
|
|
"x": 159.49274056478237,
|
|
"y": 1621.4635230667668
|
|
},
|
|
"inputs": [
|
|
{
|
|
"key": "text",
|
|
"renderTypeList": [
|
|
"textarea",
|
|
"reference"
|
|
],
|
|
"valueType": "any",
|
|
"label": "core.module.input.label.Response content",
|
|
"description": "core.module.input.description.Response content",
|
|
"placeholder": "core.module.input.description.Response content",
|
|
"type": "textarea",
|
|
"showTargetInApp": true,
|
|
"showTargetInPlugin": true,
|
|
"value": "这是开头\\n",
|
|
"connected": false,
|
|
"selectedTypeIndex": 0
|
|
}
|
|
],
|
|
"outputs": []
|
|
},
|
|
{
|
|
"nodeId": "U5T3dMVY4wj7",
|
|
"name": "指定回复",
|
|
"intro": "该模块可以直接回复一段指定的内容。常用于引导、提示。非字符串内容传入时,会转成字符串进行输出。",
|
|
"avatar": "/imgs/workflow/reply.png",
|
|
"flowNodeType": "answerNode",
|
|
"position": {
|
|
"x": 1467.0625486167608,
|
|
"y": 1597.346243737531
|
|
},
|
|
"inputs": [
|
|
{
|
|
"key": "text",
|
|
"renderTypeList": [
|
|
"textarea",
|
|
"reference"
|
|
],
|
|
"valueType": "string",
|
|
"label": "core.module.input.label.Response content",
|
|
"description": "core.module.input.description.Response content",
|
|
"placeholder": "core.module.input.description.Response content",
|
|
"value": "这是结尾"
|
|
}
|
|
],
|
|
"outputs": []
|
|
}
|
|
],
|
|
"edges": [
|
|
{
|
|
"source": "7z5g5h",
|
|
"target": "tc90wz",
|
|
"sourceHandle": "7z5g5h-source-right",
|
|
"targetHandle": "tc90wz-target-left"
|
|
},
|
|
{
|
|
"source": "tc90wz",
|
|
"target": "nlfwkc",
|
|
"sourceHandle": "tc90wz-source-right",
|
|
"targetHandle": "nlfwkc-target-left"
|
|
},
|
|
{
|
|
"source": "nlfwkc",
|
|
"target": "U5T3dMVY4wj7",
|
|
"sourceHandle": "nlfwkc-source-right",
|
|
"targetHandle": "U5T3dMVY4wj7-target-left"
|
|
}
|
|
]
|
|
}
|
|
```
|
|
|
|
{{% /details %}}
|
|
|