资讯 社区 文档
技术能力
语音技术
文字识别
人脸与人体
图像技术
语言与知识
视频技术

对话

接口描述

该接口用于在一轮对话中向agent应用发送消息。

在线调试

百度智能云千帆提供了 API在线调试平台-示例代码 ,用于帮助开发者调试接口,平台集成快速检索、查看开发文档、查看在线调用的请求内容和返回结果、复制和下载示例代码等功能,支持Python、Java、PHP、C#、Go、Node.js、C++ 7种主流语言示例代码自动生成。

权限说明

Authorization需要填写密钥。

接口定义

Path /v2/app/conversation/runs
Method POST
Content-Type application/json
Authorization 请求签名(此签名为应用工作台密钥)

请求结构

POST /v2/app/conversation/runs HTTP/1.1
HOST: qianfan.baidubce.com
Authorization: authorization string
Content-Type: application/json

{
    "app_id": "85036d8f-239c-469c-b342-b62ca9d696f6",
    "query": "根据文件中的数据,统计这几所学校小学生有多少",
    "stream": true,
    "conversation_id": "355a4f4e-a6d8-4dec-b840-7075030c6d22",
    "file_ids": [
        "cdd1e194-cfb7-4173-a154-795fae8535d9"
    ]
}

请求头域

除公共头域外,无其它特殊头域。

请求参数

字段 类型 必填 说明
app_id string app_id,来源于个人空间-应用-应用ID。应用分为自主规划agent和工作流agent。
end_user_id string 使用记忆时为是 终端用户ID,由用户自行定义与维护,限制6 - 64字符;该字段为记忆提供存储标识,若需完整使用记忆功能end_user_id必须输入。
query string 用户query文字, 长度限制2000字符。
stream bool 是否以流式接口的形式返回数据,默认false。
conversation_id string 对话id,可通过新建会话接口创建。
file_ids list[string] 如果在对话中上传了文件,可以将文件id放入该字段,目前只处理第一个文件。
tool_choice object 控制大模型使用组件的方式,仅对自主规划Agent生效。
tools list[Tool] 工具列表,其中每个字典对应一个工具,仅对自主规划Agent生效。
tool_outputs list[ToolOutput] 内容为本地工具执行的结果,仅对自主规划Agent生效。
action object 对话时要进行的特殊操作。如回复工作流agent中“信息收集节点“的消息。

tool_choice对象

字段 类型 必填 说明
type string 类型,可选值为:
auto:由LLM自动判断调什么组件;
function:由用户指定调用哪个组件,仅支持强制命中通过工作流自定义的组件,官方组件不支持强制命中;
如果想获取组件的原始输出,请在应用回复设置中将该组件设置成回复节点,详细操作可参考调用示例
function object 组件对象,包括组件的英文名称和入参

tool_choice.function对象

字段 类型 必然存在 说明
name string 组件的英文名称(唯一标识),用户通过工作流完成自定义组件后,
可在个人空间-组件下查看组件英文名称
input object 当组件没有入参时填入空对象{}

Tool对象

字段 类型 必然存在 说明
type string 枚举:
function: 支持fucntion call模式调用工具
function object 工具对象

Tool.function对象

字段 类型 必然存在 说明
name string 函数名
只允许数字、大小写字母和中划线和下划线,最大长度为64个字符。一次运行中唯一。
description string 函数描述
parameters object 函数请求参数,JSON Schema 格式,参考JSON Schema描述
在此基础上,新增约束如下:
1. 当某一字段为object类型时,properties字段必选,properties内可为空。
2. 当某一字段为array类型时,items字段必选,items内可为空。

ToolOutput对象

字段 类型 必然存在 说明
tool_call_id string 工具调用的ID。
来源于上一轮Run请求时,Interrupt状态时,tool_calls \ id字段
output string function call工具的输出。
如果是json,也需要对json序列化成string

Action对象

字段 类型 必然存在 说明
action_type string 要执行的操作。
可选值为:
resume:回复“信息收集节点” 的消息
parameters string 执行操作时所需的参数

parameters(action_type为resume)时

字段 类型 必然存在 说明
interrupt_event object 要回复的“信息收集节点”中断事件的信息
id string 要回复的“信息收集节点”中断事件的id。
为上次对话“信息收集节点”返回的
{"interrupt_event_id": "e4ebfab8-4557-4e3c-9481-a38c4b6d2955", "interrupt_event_type": "chat"}
中的interrupt_event_id。
type string 要回复的”信息收集节点“中断事件的type。
为上次对话“信息收集节点”返回的
{"interrupt_event_id": "e4ebfab8-4557-4e3c-9481-a38c4b6d2955", "interrupt_event_type": "chat"}
中的interrupt_event_type,当前仅有一个类型 "chat"。

响应头域

除公共头域外,无其它特殊头域。

响应参数

字段 类型 必然存在 说明
request_id string request_id便于追踪。
date string 消息返回时间的时间戳 UTC时间格式。
answer string 文字答案。 流式场景下是增量数据。
conversation_id string 对话id,可以用于后续调用,有效期为7天。
message_id string 消息id, 流式场景下多次推流message_id保持一致。
is_completion boolean 流式消息推送回答结果是否完结。
content list[dict] 节点输出信息相关内容。具体见下文content字段定义。

content字段

字段 类型 必然存在 说明
result_type string 表示信息返回类型;
事件类型为rag时,返回以下结果:
docsearch_result:知识库文档中总结
empty_result:大模型根据经验总结
baidusearch_result:大模型从百度搜索查到后总结;
事件类型为chatflow时,返回以下结果:
chatflow:工作流Agent
event_code int 事件错误码

事件状态正常。 事件状出错时, 推送非0值,只代表事件状态,不代表整次对话状态。
event_message string 事件执行错误提示信息。
event_type enum 事件类型 rag: 知识问答

function_call: function_call 工具

ChatAgent: 闲聊、总结、数字人口播文本

Workflow: 自定义工作流组件

DataSheetAgent:数据库问答(上传数据表)

DatabaseAgent:数据库问答(直连数据库)

MemoryTableAgent:记忆表

MemoryVariableWriter:记忆变量

chatflow:工作流Agent

FollowUpQuery: 追问

其它工具: TTS、GetWeather、QueryArxiv、CodeInterpreter、WebPilot、WolframAlpha。全部列表可见 事件类型说明 部分。
event_id string 事件id。
event_status enum 事件执行状态:

preparing:准备中

running:运行中

error:错误

done:执行完成

interrupt:中断,等待用户提交 tool call结果
content_type enum 事件本次输出内容的类型。

status 状态事件,无数据输出

text 文本回答

image 图片

files 文件

function_call:function_call

publish_message: chatflow中,用来返回中间消息。

chatflow_interrupt: chatflow中,“信息收集节点”返回的中断事件。

multiple_dialog_event: chatflow中,用来标识多轮对话进行中或者已经结束。

chatflow:chatflow

image: 图片url地址

audio:语音url地址

video: 视频url地址

oral_text:数字人口播文本
outputs object 每个事件个性化输出内容的汇总字段,根据事件的类型不同, outputs下内容不同。
usage object 模型用量 仅Chat Agent和Function Call和FollowUpQuery有,按照各个独立的event_type计数。
tool_calls list[ToolCall] tool_calls: 需要用户本地调用的tool,包含了调用所需的参数和上下文

usage 模型用量对象

字段名称 类型 必然存在 说明
prompt_tokens int 输入token数
completion_tokens int 输出token数
total_tokens int 总token数
name string 消耗tokens的模型名称

ToolCall对象

字段名称 类型 必然存在 说明
id string 工具调用的ID。当您在提交工具输出时,必须引用此ID。
type string 需要输出的工具调用的类型。就目前而言,这始终是function。
function object 函数定义。
function \ name string 函数的名称
function \ arguments string 模型希望您传递给函数的参数,需要是一个json dump string

outputs字段

说明: 每个事件类型的outputs字段均不相同。

字段名称 类型 描述
outputs Object event_type 为 rag , 结果包括以下字段:
text: string 普通文本
references list[object] 包含reference对象的数组, reference格式在下面定义

event_type 为 function_call , 结果包括以下字段:
text: string 普通文本。function_call 的描述json

event_type 为 Workflow,结果包括以下字段:
text: string 普通文本
meta:json 自定义组件的描述信息

event_type 为DataSheetAgent , 结果包括以下字段:
text: string 普通文本
code: string 普通文本
references list[object] 包含reference对象的数组, reference格式在下面定义

event_type为 DatabaseAgent , 结果包括以下字段:
code: string 普通文本
text: string 普通文本或者json结构。当content_type为text时,text返回为string类型的普通文本,当content_type为chart时,text返回为json结构。json结构中,chart_type的值固定为 chart, chart_data的值为表格内容。
references list[object] 包含reference对象的数组, reference格式在下面定义

event_type为 MemoryTableAgent , 结果包括以下字段:
text: string 普通文本
code: string 普通文本

event_type为MemoryVariableWriter , 结果包括以下字段:
text: string 普通文本

event_type为chatflow ,content_type是publish_message, 结果包括以下字段:
message: 消息内容
message_id: 消息id

event_type为chatflow ,content_type是chatflow_interrupt, 结果包括以下字段:
interrupt_event_id: string 信息收集节点返回的中断事件id
interrupt_event_type: string 信息收集节点返回的中断事件type

event_type为chatflow ,content_type是multiple_dialog_event, 结果包括以下字段:
name_cn: 固定为工作流Agent

event_type为chatflow ,content_type是code, 结果包括以下字段:
code: 返回的代码
language: 代码格式,固定为json

event_type为chatflow ,content_type是text, 结果包括以下字段:
text: 返回的文本

event_type为chatflow , 结果包括以下字段:
name_cn:string 普通文本
text: string 普通文本

event_type为FollowUpQuery ,content_type是json, 结果包括以下字段:
json: 返回的追问信息,格式是dict,key为follow_up_querys,格式为list[str],内容为返回的追问问题

event_type 为其它组件名,可能会出现以下多种字段
urls: 外部链接
files: 工具生成的文件链接
image:工具生成的图片url
audio:工具生成的语音url
video:工具生成的视频url
-- text string 各个事件都可能产生文字信息
-- meta json 自定义组件信息
-- references list[object] 通用类型 Reference的列表
-- urls list[string] 工具生成的文件链接列表
-- files list[string] 工具生成的可下载文件地址列表
-- image string 工具生成的图片url
-- audio string 工具生成的语音url
-- video string 工具生成的视频url

rag的reference参考信息

定义: 问答结果中的引用参考。 如大模型的回答引用了某切片, 需要在问答结果中标注出答案的来源位置。

字段 类型 必然存在 说明
id String content信息的id
from String 信息来源
url String BaiduSearch 的专用字段
content String 切片内容
segment_id String 切片id 知识问答专有字段
document_id String 文档id 知识问答专有字段
dataset_id String 数据集id 知识问答专有字段
knowledge_base_id String 知识库id 知识问答专有字段
document_name String 文档名字 知识问答专有字段
score float 切片匹配分
coord String 命中的文字在切片中的位置;json转成的String,json格式为object,结果包含以下字段:
box list[list[int]] 命中的内容在切片中的位置;
page_num list[int] 命中的内容在文档中的页数
is_virtual_chunk bool 是否是small2big合并后的切片。
如果是,则child_chunks中存储的是合并前的命中切片和扩展切片集合
original_chunk_id string 关联原始切片。为空时代表是原始切片,非空是为扩展切片
original_chunk_offset int 和原始切片的关联位置
-1:代表上一个
1:代表下一个
child_chunks list[object] 子切片
child_chunks/chunk_id string 子切片id
child_chunks/type string 切片类型(目前只有image)
child_chunks/meta object 切片的元数据信息
child_chunks/meta/page_num int 当前切片在原文档中的页数
child_chunks/meta/url string 切片对应的原文档中的页形成的图片的url,有效期24h
child_chunks/meta/box list[list[int]] 命中的内容在图片中的位置,可能一次对话命中一个文档中的多个段落,数组中每个元素代表一次命中的位置,每个位置用[x,y,w,h]表示,x y是框的左上角,w h是框的宽高
child_chunks/content String 切片内容
child_chunks/segment_id String 切片id 知识问答专有字段
child_chunks/document_id String 文档id 知识问答专有字段
child_chunks/document_name String 文档名字 知识问答专有字段
child_chunks/dataset_id String 数据集id 知识问答专有字段
child_chunks/position int 切片位置
child_chunks/coord String 命中的文字在切片中的位置;json转成的String,json格式为object 字段包含box格式为list[list[int]] 命中的内容在切片中的位置;page_num格式为list[int] 命中的内容在文档中的页数
child_chunks/score float 切片匹配分
child_chunks/original_chunk_id String 关联原始切片,为空时代表是原始切片,非空是为扩展切片
child_chunks/original_chunk_offset int 原始切片的关联位置
row_line list[RowLine] 命中的表格型知识数据中的某行数据。具体描述参考RowLine对象
非表格型知识数据时值为空

RowLine对象

字段 类型 必然存在 说明
key String 列名
index int 列顺序
value String 列值
enable_indexing bool 是否参与索引。
可选值:
true:参与索引。
false:不参与索引
enable_response bool 是否参与问答(即该列数据是否对大模型可见)。当前值固定为true。
可选值:
true:参与问答。
false:不参与问答

function_call描述json

字段 类型 必然存在 说明
arguments String 参数
component_code String 组件编码
component_name String 组件名称

meta自定义组件描述json

字段 类型 必然存在 说明
workflow_id String 组件id
workflow_code String 组件编码
workflow_name String 组件名称
desc String 组件描述

event_type 为DataSheetAgent时,reference的参考信息

字段 类型 必然存在 说明
id int content信息的id
type String 类型,值为engine
from String 信息来源,值为search_db_sheet
datasheet_id String 数据库id
datasheet_name String 数据库名称

event_type 为DatabaseAgent,content_type为chart时,outputs.text.chart_data的json参考信息

注:详情可查看ECharts官网

字段 类型 必然存在 说明
legend [object] 图例组件
tooltip [object] 提示框组件
dataset list[string] ECharts 4 开始支持了 数据集dataset)组件用于单独的数据集声明,从而数据可以单独管理,被多个组件复用,并且可以自由指定数据到视觉的映射。这在不少场景下能带来使用上的方便;如"dataset": [{"dimensions": ["高校数量"], "source": [{"高校数量": 37}]}]
xAxis [string] 直角坐标系 grid 中的 x 轴,一般情况下单个 grid 组件最多只能放上下两个 x 轴,多于两个 x 轴需要通过配置 offset 属性防止同个位置多个 x 轴的重叠
yAxis [string] 直角坐标系 grid 中的 y 轴,一般情况下单个 grid 组件最多只能放左右两个 y 轴,多于两个 y 轴需要通过配置 offset 属性防止同个位置多个 Y 轴的重叠。
series list[string] 图表类型

DatabaseAgent的reference参考信息

字段 类型 必然存在 说明
id int content信息的id
type String 类型,值为engine
from String 信息来源,值为database
database_id String 数据库id
database_name String 数据库名称
table_id String 数据表id
table_name String 数据表名称

事件类型说明

事件编码 事件名称
rag 知识问答
function_call function_call 工具
ChatAgent 闲聊、总结、数字人口播文本
Workflow 自定义工作流组件
DataSheetAgent 数据库问答(上传数据表)
DatabaseAgent 数据库问答(直连数据库)
MemoryTableAgent 记忆表
MemoryVariableWriter 记忆变量
chatflow 工作流Agent
SimilarQuestion 相似问生成
WeatherQuery 天气查询
QueryExpressPackage 快递查询
QueryFlights 航班动态查询
DocumentUnderstanding 长文档内容理解
Translation 文本翻译-通用版
TableOCR 表格文字识别
PlantRecognition 植物识别
ImageUnderstand 图像内容理解
HandwriteOCR 手写文字识别
QRcodeOCR 二维码识别
VideoGet 热门视频
CodeInterpreter 代码解释器
Arxiv 论文搜索
WebPilot 浏览网页
NewsGet 头条新闻
TTS 短文本在线合成
WolframAlpha Wolfram Alpha
BingImageSearch 必应图片搜索
ZhouGongDreamInterpreter 周公解梦大师
HealthAssistant 健康小助手
AnimalRecognition 动物识别
ObjectRecognition 通用物体和场景识别-高级版
GeneralOCR 通用文字识别-高精度版
LotteryResult 彩票开奖结果
DocFormatConverter 文档格式转换
ASR 短语音识别-极速版
Text2Image 文生图
ECommerceProductInquiryTB 电商商品查询-tb
BaiduSearch 百度搜索
ECommerceProductInquiryJD 电商商品查询-jd
DocCropEnhance 文档矫正增强
WebSummary 网页内容总结
SportsEventInformation 体育赛事信息
BaiduNovel 百度小说
Excel2Figure Excel转图表
MixCardOCR 身份证混贴识别
StyleRewrite 风格转写
StyleWriting 风格写作
ExchangeRateCalc 汇率计算
FundExpert 基金专家
MovieAssistant 电影助手
TravelExpert 旅游达人
ImageAssistant 搜图助手
ExamAssistant 高考助手
StockGuru 股票大师
ArticleAssistant 文库助手
RoutePlanning 百度地图路线规划
QueryRewrite 多轮改写
Nl2pandas 自然语言转pandas
TagExtraction 标签抽取
DialogSummary 会话小结
OralQueryGeneration 口语化Query生成
QueryDecomposition 复杂Query分解
IsComplexQuery 复杂Query判定
QAPairMining 问答对挖掘
MRC 阅读理解问答
Playground 空应用
SelectTable GBI选表
NL2Sql GBI问表
DishRecognition 菜品识别
LandmarkRecognition 地标识别
DocParser 文档解析
DocSplitter 文档切分
Matching 语义匹配
Embedding 向量计算
HandwriteOCR 手写体OCR识别
ExtractTableFromDoc 表格抽取
BESRetriever 向量检索-BES
BaiduVDBRetriever 向量检索-VDB
HallucinationDetection 幻觉检测
MusicAssistant 音乐助手
HotDramaAssistant 热剧助手
CardInfoExtractor 卡证信息抽取

请求curl示例

curl --location 'https://qianfan.baidubce.com/v2/app/conversation/runs' \
--header 'Authorization: Bearer authorization string' \
--header 'Content-Type: application/json' \
--data '{
    "app_id": "85036d8f-239c-469c-b342-b62ca9d696f6",
    "query": "根据文件中的数据,统计这几所学校小学生有多少",
    "stream": true,
    "conversation_id": "355a4f4e-a6d8-4dec-b840-7075030c6d22",
    "file_ids": [
        "cdd1e194-cfb7-4173-a154-795fae8535d9"
    ]
}'

正确响应示例

HTTP/1.1 200 OK

// 一条 function_call事件类型的流式消息
{
    "request_id": "a335502e-502d-426d-9e87-ea8ad47efc8d",
    "date": "2024-04-26T09:11:13Z",
    "answer": "",
    "conversation_id": "1fdc9182-de2d-4c56-bf64-a72d98c2b59f",
    "message_id": "66c1c8c5-d04a-4376-91ff-3a7285e698f0",
    "is_completion": false,
    "content": [
        {
            "event_code": 0,
            "event_message": "",
            "event_type": "function_call",
            "event_id": "6",
            "event_status": "done",
            "content_type": "function_call",
            "outputs": {
                "text": {
                    "arguments": {
                        "query": "对'北京小学.xlsx'文件中的'count'列数据进行求和操作",
                        "upload_file": "北京小学.xlsx"
                    },
                    "component_code": "CodeInterpreter",
                    "component_name": "代码解释器"
                }
            },
            "usage": {
                    "prompt_tokens": 3476,
                    "completion_tokens": 0,
                    "total_tokens": 3476,
                    "name": "ERNIE-4.0-8K"
            }
        }
    ]
}


// 一条 ChatAgent 事件类型的流式消息
{
    "request_id": "a335502e-502d-426d-9e87-ea8ad47efc8d",
    "date": "2024-04-26T09:11:59Z",
    "answer": "北京小学.xlsx'文件中的数据,这几所学校小学生的总数为:430人。",
    "conversation_id": "1fdc9182-de2d-4c56-bf64-a72d98c2b59f",
    "message_id": "66c1c8c5-d04a-4376-91ff-3a7285e698f0",
    "is_completion": false,
    "content": [
        {
            "event_code": 0,
            "event_message": "",
            "event_type": "ChatAgent",
            "event_id": "13",
            "event_status": "running",
            "content_type": "text",
            "outputs": {
                "text": "北京小学.xlsx'文件中的数据,这几所学校小学生的总数为:430人。"
            }
        }
    ]
}


// 成功开启流式消息后,有出现异常需要终止流,返回的异常消息

{
  "request_id": "ae2225f7-1c2e-427a-a1ad-5413b762957d",
  "code": "ChatError",
  "message": "流式消息发生异常"
}

错误响应示例

HTTP/1.1 401 OK

{
  "request_id": "ae2225f7-1c2e-427a-a1ad-5413b762957d",
  "code": "PermissionDeniedError",
  "message": "没有权限"
}

其他示例

1. 强制执行组件

开发者可以通过tool_chioce字段,绕过思考模型,直接对工作流组件进行调用,示例如下。注意,用户只需传入组件开始节点的新增参数,系统参数如rawQuery、chatHistory、fileUrls等,不需要传入,组件会自动获取对应app_id的系统参数。

curl --location --request POST 'https://qianfan.baidubce.com/v2/app/conversation/runs' \
--header 'Authorization: Bearer authorization string' \
--header 'Content-Type: application/json' \
--data-raw '{

    "app_id": "b412f6b3-d9e9-4617-8be5-94df02b06bdf",
    "query": "你好",
    "stream": true,
    "conversation_id": "377208a9-2ec2-4ed3-bc1f-120d20d0018c",
    "tool_choice": {
        "type": "function",
        "function": {
            "name": "QueryFlights",
            "input": {
                "flight_number":"CZ8889"
            }
        }
    }
}'

组件执行完后,默认要经过问答模型进行总结。如想绕过问答模型,获取组件的原始输出,请在应用回复设置中将该组件设置成回复节点。注意,含有百度搜索节点的组件,不支持获取组件原始输出。 image.png

HTTP/1.1 200 OK

// 一条 组件响应结果的流式消息
{
    "request_id": "55d1825e-a3f6-4267-ae12-8061562f45f9",
    "date": "2024-08-14T16:20:08Z",
    "answer": "",
    "conversation_id": "377208a9-2ec2-4ed3-bc1f-120d20d0018c",
    "message_id": "9d637244-65e3-4b96-9f15-fe4ff69d5e15",
    "is_completion": false,
    "content": [
        {
            "result_type": "",
            "event_code": 0,
            "event_message": "",
            "event_type": "QueryFlights",
            "event_id": "2",
            "event_status": "done",
            "content_type": "text",
            "visible_scope": "",
            "outputs": {
                "text": "[\n    {\n        \"航班号\": \"CZ8889\",\n        \"是否延误\": null,\n        \"是否改道\": null,\n        \"是否取消\": null,\n        \"始发地\": \"Beijing\",\n        \"目的地\": \"上海 上海浦东 CN\",\n        \"当前状态\": \"已到达 / 到达停机位\",\n        \"预估出发时间\": \"2024-08-14T04:28:00Z\",\n        \"实际出发时间\": \"2024-08-14T04:24:00Z\",\n        \"预估到达时间\": \"2024-08-14T06:17:00Z\",\n        \"实际到达间\": null\n    }\n]"
            }
        }
    ]
}

2. Function call本地函数

curl --location --request POST 'https://qianfan.baidubce.com/v2/app/conversation/runs' \
--header 'Authorization: Bearer authorization string' \
--header 'Content-Type: application/json' \
--data-raw '{
    "app_id": "4d4b1b27-d607-4d2a-9002-206134217a9f",
    "query": "今天北京的天气怎么样",
    "stream": true,
    "conversation_id": "8c5928f7-a9e7-4826-a027-3eb1f97f6eab",
    "tools": [
        {
            "type": "function",
            "function": {
                "name": "get_current_weather",
                "description": "仅支持中国城市的天气查询,参数location为中国城市名称,其他国家城市不支持天气查询",
                "parameters": {
                    "type": "object",
                    "properties": {
                        "location": {
                            "type": "string",
                            "description": "The city and state, e.g. Beijing"
                        },
                        "unit": {
                            "type": "string",
                            "enum": [
                                "celsius",
                                "fahrenheit"
                            ]
                        }
                    },
                    "required": [
                        "location",
                        "unit"
                    ]
                }
            }
        }
    ]
}'
HTTP/1.1 200 OK

// 一条 中断响应结果的流式消息
{
    "code": 0,
    "message": "",
    "trace_id": "2f7b17ea-b526-4dec-946c-aef99d279c5b",
    "time": 1723622172917,
    "result": {
        "answer": "",
        "conversation_id": "c01171ba-e33f-4da3-aae1-b259c88e2140",
        "message_id": "db4873e9-c30d-4721-8857-6856a0a28824",
        "is_completion": false,
        "content": [
            {
                "result_type": "",
                "event_code": 0,
                "event_message": "",
                "node_name": "root",
                "dependency_nodes": [

                ],
                "event_type": "Interrupt",
                "event_id": "0",
                "event_status": "interrupt",
                "content_type": "contexts",
                "visible_scope": "",
                "outputs": {
                    "text": {
                        "function_call": {
                            "thought": "用户想要知道今天北京的天气情况,这是一个明确的天气查询需求。根据工具描述,'get_current_weather'工具可以查询中国城市的天气,因此我将使用这个工具来满足用户的需求。",
                            "name": "get_current_weather",
                            "arguments": {
                                "location": "Beijing",
                                "unit": "celsius"
                            },
                            "usage": {
                                "prompt_tokens": 581,
                                "completion_tokens": 91,
                                "total_tokens": 672,
                                "name": "ERNIE-3.5-8K",
                                "type": "plan"
                            },
                            "tool_call_id": "4c03ac0d-7cd1-4bde-812f-63fa506c6aea"
                        },
                        "used_tool": [

                        ]
                    }
                },
                "tool_calls": [
                    {
                        "id": "4c03ac0d-7cd1-4bde-812f-63fa506c6aea",
                        "type": "function",
                        "function": {
                            "name": "get_current_weather",
                            "arguments": {
                                "location": "Beijing",
                                "unit": "celsius"
                            }
                        }
                    }
                ]
            }
        ],
        "prototype": "function_call"
    }
}

3. 上报工具调用结果

curl --location --request POST 'https://qianfan.baidubce.com/v2/app/conversation/runs' \
--header 'Authorization: Bearer authorization string' \
--header 'Content-Type: application/json' \
--data-raw '{
    "app_id": "4d4b1b27-d607-4d2a-9002-206134217a9f",
    "stream": false,
    "conversation_id": "8c5928f7-a9e7-4826-a027-3eb1f97f6eab",
    "tool_outputs": [
        {
            "tool_call_id": "ba853313-cbf0-4ecc-8ae7-92b33f00509d",
            "output": "北京今天天气晴朗,温度32度"
        }
    ]
}'

4. 回复“信息收集节点”的消息

当工作流agent中存在"信息收集节点",并且需要回复“信息收集节点”的消息时:

先发送第一轮消息,通过第一轮消息的回复,获取到interrupt_event_id 和 interrupt_event_type

curl --location --request POST 'https://qianfan.baidubce.com/v2/app/conversation/runs' \
--header 'Authorization: Bearer authorization string' \
--header 'Content-Type: application/json' \
--data-raw '{
    "app_id": "7439c98a-a96c-468a-8a94-97a61b4476bf",
    "query": "你好",
    "stream": true,
    "conversation_id": "f1e88920-6075-42e2-b6ce-fff44f2c3159"
 }'

返回的结果中可看到相关信息

image.png

获取到interrupt_event_id后,通过"action"回复"信息收集节点"的消息

  curl --location --request POST 'https://qianfan.baidubce.com/v2/app/conversation/runs' \
  --header 'Authorization: Bearer authorization string' \
  --header 'Content-Type: application/json' \
  --data-raw '{
      "app_id": "7439c98a-a96c-468a-8a94-97a61b4476bf",
      "query": "这是回复信息收集节点的消息",
      "stream": true,
      "conversation_id": "f1e88920-6075-42e2-b6ce-fff44f2c3159",
      "action":{ 
          "action_type":"resume",
          "parameters":{
              "interrupt_event":{
                  "id": "af01f7ee-0ba2-4208-ac3c-09dee43c9ba0",
                  "type": "chat"
              }
          }
      }
   }'
上一篇
文件上传
下一篇
查询用户应用详情