应用
Agent 应用
当前Agent应用分为两类:
- 自主规划Agent:主要依靠大模型自主思考和规划完成任务的Agent,适用于灵活性强的需求场景,如闲聊问答、旅游助手等。
- 工作流Agent:通过工作流编排的形式搭建的Agent,每轮对话均严格按照工作流执行,提高了Agent的可控性,并可编排出复杂业务流程,适用于客服、营销、生成、办公等高可控及高复杂度等场景。
如何创建自主规划Agent
创建自主规划Agent
千帆 AppBuilder平台首页点击【+创建】选择自主规划Agent 或通过对话方式创建应用
应用配置与调试
通过使用组件、知识库、数据库、记忆、数字人形象等功能,扩展应用能力,支持更多场景。
目前支持的能力如下:
- 组件:通过组件可以增强或扩展模型的能力,如集成搜索组件可以让智能体检索互联网上的实时信息,为用户提供最新的数据和动态。
- 知识库:知识库是存储专业领域的知识和数据的集合,用于提高智能体在特定场景下的响应准确性和专业性。例如,一个医疗知识库可以提供详细的药物使用指导,确保用户获得正确且及时的健康建议。
- 数据库:通过数据库可实现表格问答,支持单表问答或多表联合问答。如对某公司年度相机销售情况进行管理和分析。
- 数字人形象:为应用添加数字人形象,支持语音对话。
- 开场白:开场白是智能体首次与用户接触时的初始对话。它简要介绍智能体的身份和功能,使用户了解如何与其有效沟通。
- 推荐问:在对话初期,智能体提供的预设问题,引导用户探索其功能和服务,帮助用户快速熟悉和利用智能体的能力。
- 追问:智能体基于当前对话内容自动产生后续问题,旨在深化对话、收集更多信息,通过个性化的回应和服务提高用户对话轮次。
应用发布
完成应用配置和效果调试后,可点击右上角【发布】按钮,进行多渠道发布。发布之后的应用,支持API/SDK调用。
- 支持的发布渠道:百度搜索、网页版、应用广场、企业微信应用、微信公众号(订阅号、服务号)、微信小程序、微信客服、网站嵌入
如何创建工作流Agent
创建工作流Agent
千帆 AppBuilder平台首页点击【+创建】选择工作流Agent
应用配置与工作流编排
应用配置对整个应用全局生效,包含应用基本信息、记忆变量、开场白、推荐问和数字人形象等配置,你可以使用记忆变量节点对应用全局层面的记忆变量进行读取或写入。
工作流编排通过节点编排的形式决定工作流Agent每一步需要执行的任务,应用将会从开始节点起按照编排顺序执行到结束节点。
应用发布
完成应用配置和效果调试后,可点击右上角【发布】按钮,进行多渠道发布。发布之后的应用,支持API/SDK调用。
- 支持的发布渠道:百度搜索、网页版、应用广场、企业微信应用、微信公众号(订阅号、服务号)、微信小程序、微信客服、网站嵌入
如何通过API/SDK调用应用
应用创建完成后,用户可通过应用发起问答,并执行文件上传、答案点赞或点踩等操作,这些功能均可通过 API/SDK 实现调用。
接口能力概览
接口名称 | 接口描述 |
---|---|
新建对话 | 该接口用于新建conversation_id,conversation_id的有效期为7天。超过之后可能无法使用,需要重新生成。 |
对话文件上传 | 该接口用于在对话中上传文件供大模型处理,文件的有效期为7天并且不超过对话的有效期。 一次只能上传一个文件。 |
对话 | 该接口用于在一轮对话中向agent应用发送消息。可通过传递app_id调用应用。 |
查询用户应用详情 | 该接口查询用户下状态为已发布的应用详情。 |
查询用户应用列表 | 该接口查询用户下的应用列表。 |
点赞点踩 | 支持对agent应用返回的对话内容进行评价(包括点赞、点踩及取消评价),并允许附加标签和评论文本,帮助进一步细化反馈数据。 |
创建对话
接口描述
通过【新建对话】接口,可以建立用户与应用之间的对话,该接口会返回一个 conversation_id,用于标识该对话,并在后续的问答交互及其他操作中使用。
注意:conversation_id的有效期为7天。超过之后可能无法使用,需要重新生成。
请求示例
1curl --location 'https://qianfan.baidubce.com/v2/app/conversation'
2--header 'Authorization: Bearer <AppBuilder API Key>'
3--header 'Content-Type: application/json'
4--data '{
5 "app_id": "85036d8f-239c-469c-b342-b62ca9d696f6"
6}'
返回示例
1HTTP/1.1 200 OK
2{
3 "request_id": "355a4f4e-a6d8-4dec-b840-7075030c6d22",
4 "conversation_id": "2370813b-5303-4a4f-b5cc-44f571121342"
5}
对话
接口描述
通过【对话】接口在一轮对话中向agent应用发送消息,并获取到Agent的回复消息。
请求示例
1curl --location 'https://qianfan.baidubce.com/v2/app/conversation/runs' \
2--header 'Authorization: Bearer <AppBuilder API Key>' \
3--header 'Content-Type: application/json' \
4--data '{
5 "app_id": "85036d8f-239c-469c-b342-b62ca9d696f6",
6 "query": "根据文件中的数据,统计这几所学校小学生有多少",
7 "stream": true,
8 "conversation_id": "355a4f4e-a6d8-4dec-b840-7075030c6d22",
9 "file_ids": [
10 "cdd1e194-cfb7-4173-a154-795fae8535d9"
11 ]
12}'
返回示例
1// 一条 function_call事件类型的流式消息
2{
3 "request_id": "a335502e-502d-426d-9e87-ea8ad47efc8d",
4 "date": "2024-04-26T09:11:13Z",
5 "answer": "一共120人",
6 "conversation_id": "1fdc9182-de2d-4c56-bf64-a72d98c2b59f",
7 "message_id": "66c1c8c5-d04a-4376-91ff-3a7285e698f0",
8 "is_completion": false,
9 "content": [
10 {
11 "event_code": 0,
12 "event_message": "",
13 "event_type": "function_call",
14 "event_id": "6",
15 "event_status": "done",
16 "content_type": "function_call",
17 "outputs": {
18 "text": {
19 "arguments": {
20 "query": "对'北京小学.xlsx'文件中的'count'列数据进行求和操作",
21 "upload_file": "北京小学.xlsx"
22 },
23 "component_code": "CodeInterpreter",
24 "component_name": "代码解释器"
25 }
26 },
27 "usage": {
28 "prompt_tokens": 3476,
29 "completion_tokens": 0,
30 "total_tokens": 3476,
31 "name": "ERNIE-4.0-8K"
32 }
33 }
34 ]
35}
36
37
38// 一条 ChatAgent 事件类型的流式消息
39{
40 "request_id": "a335502e-502d-426d-9e87-ea8ad47efc8d",
41 "date": "2024-04-26T09:11:59Z",
42 "answer": "北京小学.xlsx'文件中的数据,这几所学校小学生的总数为:430人。",
43 "conversation_id": "1fdc9182-de2d-4c56-bf64-a72d98c2b59f",
44 "message_id": "66c1c8c5-d04a-4376-91ff-3a7285e698f0",
45 "is_completion": false,
46 "content": [
47 {
48 "event_code": 0,
49 "event_message": "",
50 "event_type": "ChatAgent",
51 "event_id": "13",
52 "event_status": "running",
53 "content_type": "text",
54 "outputs": {
55 "text": "北京小学.xlsx'文件中的数据,这几所学校小学生的总数为:430人。"
56 }
57 }
58 ]
59}
60
61
62// 成功开启流式消息后,有出现异常需要终止流,返回的异常消息
63
64{
65 "request_id": "ae2225f7-1c2e-427a-a1ad-5413b762957d",
66 "code": "ChatError",
67 "message": "流式消息发生异常"
68}
对话文件上传
接口描述
某些情况,用户希望在对话窗口上传文件,针对文件进行问答,此时,可以通过【对话文件上传】接口进行操作。
注意:文件的有效期为7天并且不超过对话的有效期。一次只能上传一个文件。
请求示例
1curl --location 'https://qianfan.baidubce.com/v2/app/conversation/file/upload' \
2--header 'Authorization: Bearer <AppBuilder API Key>' \
3--form 'file=文件二进制流' \
4--form 'app_id="85036d8f-239c-469c-b342-b62ca9d696f6"' \
5--form 'conversation_id="355a4f4e-a6d8-4dec-b840-7075030c6d22"'
返回示例
1{
2 "request_id": "355a4f4e-a6d8-4dec-b840-7075030c6d22",
3 "id": "1a1385ca-91ff-4b71-bb2a-048db17507c6",
4 "conversation_id": "355a4f4e-a6d8-4dec-b840-7075030c6d22"
5}
查询用户应用详情
接口描述
该接口查询用户下状态为已发布的应用详情,仅支持查询自主规划Agent应用。
请求示例
1curl --location 'https://qianfan.baidubce.com/v2/app?Action=DescribeApp' \
2--header 'Authorization: Bearer <AppBuilder API Key>' \
3--header 'Content-Type: application/json' \
4--data '{
5 "id": "405d90c0-474c-4ff1-a2ed-3070a66dc7ae" //应用id
6}'
返回示例
1HTTP/1.1 200 OK
2
3{
4 "id": "应用id",
5 "name": "应用名称"
6 "description": "应用描述",
7 "instruction": "指令",
8 "prologue": "开场白",
9 "exampleQueries": ["推荐问题1", "推荐问题2"], # 推荐问题列表
10 "followUpQueries": { # 追问配置
11 "type": "custom", # 追问配置
12 "prompt": "prompt", # 追问prompt
13 "round": 3, # 追问生成轮数
14 },
15 "components": [
16 {
17 "name": "组件名称",
18 "description": "组件描述",
19 "customDesc": ""
20 }
21 ],
22 "knowledgeBaseConfig": {
23 "knowledgeBases": [ # 知识库详情列表
24 {
25 "id": "知识库id",
26 "name": "",
27 "description": ""
28 }
29 ],
30 "retrieval": { # 检索配置
31 "enableWebSearch": true, # 是否开启百度搜索
32 "order": "排序规则", # Combined | RagFirst | WebSearchFirst
33 "strategy": "策略", # Advanced | Fulltext | Semantic
34 "topK": 2, # 召回数量
35 "threshold": 0.5 # 阈值
36 }
37 },
38 "modelConfig": { # 模型配置
39 "plan": { # 思考模型配置
40 "modelId": "",
41 "model": "",
42 "maxRounds":"",
43 "config": { # 模型多样性
44 "temperature": 0,
45 "topP": 0
46 }
47 },
48 "chat": { # 问答模型配置
49 "modelId": "",
50 "model": "",
51 "historyChatRounds":"",
52 "config": { # 模型多样性
53 "temperature": 0,
54 "topP": 0
55 }
56 }
57 }
58}
查询用户应用列表
接口描述
该接口查询用户下的应用列表。
请求示例
1curl --location 'https://qianfan.baidubce.com/v2/app?Action=DescribeApps' \
2--header 'Authorization: Bearer <AppBuilder API Key>' \
3--header 'Content-Type: application/json' \
4--data '{
5 "marker":"marker_id", // 起始位置id
6 "maxKeys":10
7}'
返回示例
1HTTP/1.1 200 OK
2
3{
4 "requestId": "355a4f4e-a6d8-4dec-b840-7075030c6d22",
5 "marker" : "marker_id",
6 "nextMarker" : "next_marker_id",
7 "isTruncated" : false,
8 "maxKeys" : 200,
9 "data": [
10 {
11 "id": "应用ID",
12 "name": "name",
13 "description": "应用描述",
14 "appType": "应用类型",
15 "isPublished": 应用状态,
16 "updateTime": 编辑时间
17 }
18 ]
19}
点赞点踩
接口描述
此接口支持对agent应用返回的对话内容进行评价(包括点赞、点踩及取消评价),并允许附加标签和评论文本,帮助进一步细化反馈数据。
请求示例
1curl --location 'https://qianfan.baidubce.com/v2/app/conversation/feedback' \
2--header 'Authorization: Bearer <AppBuilder API Key>' \
3--header 'Content-Type: application/json' \
4--data '{
5 "app_id": "d00fb80d-c5a8-45df-ad33-e9c03572c5ac",
6 "conversation_id": "76a25d49-5c0e-4979-83ea-2f9903945801",
7 "message_id": "2793aaf6-3cd9-42d4-b87e-0d9eb82c7e52",
8 "type": "downvote",
9 "flag": ["答非所问"],
10 "reason": "回答内容和问题不相关"
11}'
返回示例
1{
2 "request_id": "db50e6ed-ee0a-4d95-a385-6d57a05aed7b"
3}