mirror of
https://github.com/labring/FastGPT.git
synced 2025-07-21 11:43:56 +00:00
perf: auto add empty response (#3113)
This commit is contained in:
@@ -312,6 +312,149 @@ event取值:
|
||||
{{< /tabs >}}
|
||||
|
||||
|
||||
### 交互节点响应
|
||||
|
||||
如果工作流中包含交互节点,依然是调用该 API 接口,需要设置`detail=true`,并可以从`event=interactive`的数据中获取交互节点的配置信息。如果是`stream=false`,则可以从 choice 中获取`type=interactive`的元素,获取交互节点的选择信息。
|
||||
|
||||
当你调用一个带交互节点的工作流时,如果工作流遇到了交互节点,那么会直接返回,你可以得到下面的信息:
|
||||
|
||||
{{< tabs tabTotal="2" >}}
|
||||
{{< tab tabName="用户选择" >}}
|
||||
{{< markdownify >}}
|
||||
|
||||
```json
|
||||
{
|
||||
"interactive": {
|
||||
"type": "userSelect",
|
||||
"params": {
|
||||
"description": "测试",
|
||||
"userSelectOptions": [
|
||||
{
|
||||
"value": "Confirm",
|
||||
"key": "option1"
|
||||
},
|
||||
{
|
||||
"value": "Cancel",
|
||||
"key": "option2"
|
||||
}
|
||||
]
|
||||
}
|
||||
}
|
||||
}
|
||||
```
|
||||
|
||||
{{< /markdownify >}}
|
||||
{{< /tab >}}
|
||||
|
||||
{{< tab tabName="表单输入" >}}
|
||||
{{< markdownify >}}
|
||||
|
||||
```json
|
||||
{
|
||||
"interactive": {
|
||||
"type": "userInput",
|
||||
"params": {
|
||||
"description": "测试",
|
||||
"inputForm": [
|
||||
{
|
||||
"type": "input",
|
||||
"key": "测试 1",
|
||||
"label": "测试 1",
|
||||
"description": "",
|
||||
"value": "",
|
||||
"defaultValue": "",
|
||||
"valueType": "string",
|
||||
"required": false,
|
||||
"list": [
|
||||
{
|
||||
"label": "",
|
||||
"value": ""
|
||||
}
|
||||
]
|
||||
},
|
||||
{
|
||||
"type": "numberInput",
|
||||
"key": "测试 2",
|
||||
"label": "测试 2",
|
||||
"description": "",
|
||||
"value": "",
|
||||
"defaultValue": "",
|
||||
"valueType": "number",
|
||||
"required": false,
|
||||
"list": [
|
||||
{
|
||||
"label": "",
|
||||
"value": ""
|
||||
}
|
||||
]
|
||||
}
|
||||
]
|
||||
}
|
||||
}
|
||||
}
|
||||
```
|
||||
|
||||
{{< /markdownify >}}
|
||||
{{< /tab >}}
|
||||
{{< /tabs >}}
|
||||
|
||||
### 交互节点继续运行
|
||||
|
||||
紧接着上一节,当你接收到交互节点信息后,可以根据这些数据进行 UI 渲染,引导用户输入或选择相关信息。然后需要再次发起对话,来继续工作流。调用的接口与仍是该接口,你需要按以下格式来发起请求:
|
||||
|
||||
{{< tabs tabTotal="2" >}}
|
||||
{{< tab tabName="用户选择" >}}
|
||||
{{< markdownify >}}
|
||||
|
||||
对于用户选择,你只需要直接传递一个选择的结果给 messages 即可。
|
||||
|
||||
```bash
|
||||
curl --location --request POST 'https://api.fastgpt.in/api/v1/chat/completions' \
|
||||
--header 'Authorization: Bearer fastgpt-xxx' \
|
||||
--header 'Content-Type: application/json' \
|
||||
--data-raw '{
|
||||
"stream": true,
|
||||
"detail": true,
|
||||
"chatId":"22222231",
|
||||
"messages": [
|
||||
{
|
||||
"role": "user",
|
||||
"content": "Confirm"
|
||||
}
|
||||
]
|
||||
}'
|
||||
```
|
||||
|
||||
{{< /markdownify >}}
|
||||
{{< /tab >}}
|
||||
|
||||
{{< tab tabName="表单输入" >}}
|
||||
{{< markdownify >}}
|
||||
|
||||
表单输入稍微麻烦一点,需要将输入的内容,以对象形式并序列化成字符串,作为`messages`的值。对象的 key 对应表单的 key,value 为用户输入的值。务必确保`chatId`是一致的。
|
||||
|
||||
```bash
|
||||
curl --location --request POST 'https://api.fastgpt.in/api/v1/chat/completions' \
|
||||
--header 'Authorization: Bearer fastgpt-xxxx' \
|
||||
--header 'Content-Type: application/json' \
|
||||
--data-raw '{
|
||||
"stream": true,
|
||||
"detail": true,
|
||||
"chatId":"22231",
|
||||
"messages": [
|
||||
{
|
||||
"role": "user",
|
||||
"content": "{\"测试 1\":\"这是输入框的内容\",\"测试 2\":666}"
|
||||
}
|
||||
]
|
||||
}'
|
||||
```
|
||||
|
||||
{{< /markdownify >}}
|
||||
{{< /tab >}}
|
||||
{{< /tabs >}}
|
||||
|
||||
|
||||
## 请求插件
|
||||
|
||||
插件的接口与对话接口一致,仅请求参数略有区别,有以下规定:
|
||||
|
Reference in New Issue
Block a user