构建可以调用模型去使用工具、执行任务的智能体。
1. 创建智能体
创建智能体
1.1 代码示例
curl --location 'https://dashscope.aliyuncs.com/api/v1/assistants' \
--header 'Content-Type: application/json' \
--header 'Authorization: Bearer <YOUR-DASHSCOPE-API-KEY>' \
--data '{
"model": "qwen-max",
"name": "智能小助手",
"description": "这是一个智能小助手",
"instructions": "你是一个智能小助手,你可以根据用户的需求去调用不同的工具,进而给出回答。请酌情使用工具。",
"tools": [
{
"type": "code_interpreter"
}
],
"file_ids": ["file_id"],
"metadata": {}
}'
1.2 输入参数解释
输入参数名字 | 输入参数的描述 | 参数类型 | 是否必须 |
model | 智能体所使用的模型 | str | 是 |
name | 智能体使用的名字 | str | 否 |
description | 用于描述智能体的文字 | str | 否 |
instructions | System prompt 用于智能体里的大模型 | str | 否 |
tools | 一个可以被智能体调用tools list,用户需要在百炼中被注册, 说明 自定义tool鉴权信息传递 { "type": "plugin_type", "auth": { "type": "user_http", "user_token": "bearer-token", } } assistant在请求插件时会将bearer放在 {"plugin_type":{"user_token": "bearer-token"}}' 添加到调用plugin的header里. | Optional[List[Dict]] | 否(default=[]) |
file_ids | 一个可以被智能体使用的文件的ID,需要提前上传文件后获取文件id。 | Optional[List[str]] | 否(default=[]) |
metadata | 其他相关参数用于智能体,用于存储其他相关参数 | Dict | 否 |
temperature | 用于控制随机性和多样性的程度。 | float | 否 |
top_p | 生成时,核采样方法的概率阈值。 | float | 否 |
top_k | 生成时,采样候选集的大小。 | integer | 否 |
1.3 输出参数解释
{
"id": "asst_49079f4b-d1e8-4015-a12e-2dcdd1f18d84",
"object": "assistant",
"created_at": 1711713885724,
"model": "qwen-max",
"name": "智能小助手",
"description": "这是一个智能小助手",
"instructions": "你是一个智能小助手,你可以根据用户的需求去调用不同的工具,进而给出回答。请酌情使用工具。",
"tools": [
{
"type": "code_interpreter"
}
],
"file_ids": [
"file_id"
],
"metadata": {},
"temperature": null,
"top_p": null,
"top_k": null,
"max_tokens": null,
"request_id": "b1778226-3865-9006-9e95-56329a710322"
}
输出智能体类,并包含除了用户输入以外参数的其他额外字段:
id:智能体 id
request_id:请求id
2. 创建智能体的关联文件
用于创建可附在assistant 内部的文件。
2.1 代码示例
curl --location 'https://dashscope.aliyuncs.com/api/v1/assistants/asst_0678aa33-43e2-4268-95e6-b0010f9f7937/files' \
--header 'Content-Type: application/json' \
--header 'Authorization: Bearer <YOUR-DASHSCOPE-API-KEY>' \
--data '{
"file_id": "file-abc123"
}'
2.2 输入参数解释
输入参数名字 | 输入参数的描述 | 参数类型 | 是否必须 |
assistant id | 创建智能体关联文件所属的智能体 id | str | 是 |
file id | 需要创建的文件file id | str | 是 |
2.3 输出参数解释
{
"id": "file-abc123",
"object": "assistant.file",
"created_at": 1711435977164,
"assistant_id": "asst_0678aa33-43e2-4268-95e6-b0010f9f7937",
"request_id": "ca87888c-1447-9a78-86a0-4b277d0ba77d"
}
输出智能体文件类,并包含除了用户输入参数以外的其他额外字段:
id :file id
request_id :请求id
3. 列出智能体
用于返回智能体列表。
3.1 代码示例
curl --location 'https://dashscope.aliyuncs.com/api/v1/assistants?limit=2&order=desc' \
--header 'Content-Type: application/json' \
--header 'Authorization: Bearer <YOUR-DASHSCOPE-API-KEY>'
3.2 输入参数解释
输入参数名字 | 输入参数的描述 | 参数类型 | 是否必须 |
limit | 创建智能体的数量 | int | 否 |
order | 按照创建时间升序或降序 | str | 否(默认为“desc") |
3.3 输出参数解释
{
"object": "list",
"data": [
{
"id": "asst_0678aa33-43e2-4268-95e6-b0010f9f7937",
"object": "assistant",
"created_at": 1711435564909,
"model": "qwen-max",
"name": "智能小助手",
"description": "这是一个智能小助手",
"instructions": "你是一个智能小助手,你可以根据用户的需求去调用不同的工具,进而给出回答。请酌情使用工具。",
"tools": [
{
"type": "search"
},
{
"type": "text_to_image"
},
{
"type": "code_interpreter"
}
],
"file_ids": [
"file-abc123"
],
"metadata": {}
},
{
"id": "asst_7af23142-52bc-4218-aa98-dfdb1128f19c",
"object": "assistant",
"created_at": 1711422620443,
"model": "qwen-max",
"name": "helpful assistant",
"description": "",
"instructions": "You are a helpful assistant.",
"tools": [
{
"type": "text_to_image"
}
],
"file_ids": [],
"metadata": {}
}
],
"first_id": "asst_0678aa33-43e2-4268-95e6-b0010f9f7937",
"last_id": "asst_7af23142-52bc-4218-aa98-dfdb1128f19c",
"has_more": true,
"request_id": "bc257359-ce86-9547-98be-d804effba8d1"
}
输出List 智能体类,并包含除了用户输入参数以外的其他额外字段:
多个智能体组成的列表
request_id:请求id
4. 列出智能体的关联文件
4.1 代码示例
用于创建可附在智能体内部的文件列表。
curl --location 'https://dashscope.aliyuncs.com/api/v1/assistants/asst_0678aa33-43e2-4268-95e6-b0010f9f7937/files?limit=2&order=desc' \
--header 'Content-Type: application/json' \
--header 'Authorization: Bearer <YOUR-DASHSCOPE-API-KEY>'
4.2 输入参数解释
输入参数名字 | 输入参数的描述 | 参数类型 | 是否必须 |
assistant id | 创建智能体关联文件所属的智能体 id | str | 是 |
limit | 创建智能体关联文件的数量 | int | 否 |
order | 按照创建时间升序或降序 | str | 否(默认为“desc") |
4.3 输出参数解释
{
"object": "list",
"data": [
{
"id": "file-abc123",
"object": "assistant.file",
"created_at": 1711435977164,
"assistant_id": "asst_0678aa33-43e2-4268-95e6-b0010f9f7937"
},
{
"id": "file_id",
"object": "assistant.file",
"created_at": 1711435564919,
"assistant_id": "asst_0678aa33-43e2-4268-95e6-b0010f9f7937"
}
],
"first_id": "file-abc123",
"last_id": "file_id",
"has_more": false,
"request_id": "0599fd0f-1996-9a9a-af1f-a65893053357"
}
输出智能体关联文件列表类,并包含除了用户输入以外参数的其他额外字段:
request_id :请求id
5. 检索智能体
5.1 代码示例
curl --location 'https://dashscope.aliyuncs.com/api/v1/assistants/asst_0678aa33-43e2-4268-95e6-b0010f9f7937' \
--header 'Content-Type: application/json' \
--header 'Authorization: Bearer <YOUR-DASHSCOPE-API-KEY>'
5.2 输入参数解释
输入参数名字 | 输入参数的描述 | 参数类型 | 是否必须 |
assistant_id | 待检索的智能体 id | str | 是 |
5.3 输出参数解释
{
"id": "asst_0678aa33-43e2-4268-95e6-b0010f9f7937",
"object": "assistant",
"created_at": 1711435564909,
"model": "qwen-max",
"name": "智能小助手",
"description": "这是一个智能小助手",
"instructions": "你是一个智能小助手,你可以根据用户的需求去调用不同的工具,进而给出回答。请酌情使用工具。",
"tools": [
{
"type": "search"
},
{
"type": "text_to_image"
},
{
"type": "code_interpreter"
}
],
"file_ids": [
"file_id",
"file-abc123"
],
"metadata": {},
"request_id": "f0ec05b0-8813-984c-81b5-1166ae3478d1"
}
输出检索到的智能体类,并包含除了用户输入以外参数的其他额外字段:
id :assistant id
request_id :请求id
6. 检索智能体的关联文件
6.1 代码示例
用于检索可附在智能体内部的文件
curl --location 'https://dashscope.aliyuncs.com/api/v1/assistants/asst_0678aa33-43e2-4268-95e6-b0010f9f7937/files/file-abc123' \
--header 'Content-Type: application/json' \
--header 'Authorization: Bearer <YOUR-DASHSCOPE-API-KEY>'
6.2 输入参数解释
输入参数名字 | 输入参数的描述 | 参数类型 | 是否必须 |
assistant id | 创建智能体关联文件所属的智能体id | str | 是 |
file id | 需要创建的文件file id | str | 是 |
6.3 输出参数解释
{
"id": "file-abc123",
"object": "assistant.file",
"created_at": 1711435977164,
"assistant_id": "asst_0678aa33-43e2-4268-95e6-b0010f9f7937",
"request_id": "14b59cd5-3d7f-968a-844c-219119051264"
}
输出检索到的智能体关联文件类,并包含除了用户输入以外参数的其他额外字段:
id :file id
request_id :请求id
7. 更新智能体
7.1 代码示例
curl --location 'https://dashscope.aliyuncs.com/api/v1/assistants/asst_0678aa33-43e2-4268-95e6-b0010f9f7937' \
--header 'Content-Type: application/json' \
--header 'Authorization: Bearer <YOUR-DASHSCOPE-API-KEY>' \
--data '{
"instructions": "你是一个搜索助手",
"name": "新建应用-assistantAPI",
"description": "",
"model": "qwen-max-allinone",
"file_ids": ["file-abc123", "file-abc456"]
}'
7.2 输入参数解释
输入参数名字 | 输入参数的描述 | 参数类型 | 是否必须 |
assistant_id | 待检索的智能体id | str | 是 |
* | 其他可选的输入参数 | str | 否 |
model | 智能体所使用的大模型ID | str | 是 |
name | 智能体使用的名字 | str | 否 |
description | 用于描述智能体的文字 | str | 否 |
instructions | System prompt 用于智能体里的大模型 | str | 否 |
tools | 一个可以被智能体调用tools list,用户需要在百炼中被注册 | Optional[List[Dict]] | 否(default=[]) |
file_ids | 一个可以被智能体使用的文件的ID,需要提前上传文件后获取文件id | Optional[str] | 否(default=[]) |
metadata | 其他相关参数用于智能体,用于存储其他相关参数 | Dict | 否 |
7.3 输出参数解释
{
"id": "asst_0678aa33-43e2-4268-95e6-b0010f9f7937",
"object": "assistant",
"created_at": 1711435564909,
"model": "qwen-max-allinone",
"name": "新建应用-assistantAPI",
"description": "",
"instructions": "你是一个搜索助手",
"tools": [
{
"type": "search"
},
{
"type": "text_to_image"
},
{
"type": "code_interpreter"
}
],
"file_ids": [
"file-abc123",
"file-abc456"
],
"metadata": {},
"request_id": "b0993831-a98b-9e71-b235-75174df9046e"
}
输出更新后的智能体类,并包含除了用户输入以外参数的其他额外字段:
id :智能体id
request_id :请求id
8. 删除智能体
8.1 代码示例
curl --location --request DELETE 'https://dashscope.aliyuncs.com/api/v1/assistants/asst_0678aa33-43e2-4268-95e6-b0010f9f7937' \
--header 'Content-Type: application/json' \
--header 'Authorization: Bearer <YOUR-DASHSCOPE-API-KEY>'
8.2 输入参数解释
输入参数名字 | 输入参数的描述 | 参数类型 | 是否必须 |
assistant_id | 待检索的智能体 id | str | 是 |
8.3 输出参数解释
{
"id": "asst_0678aa33-43e2-4268-95e6-b0010f9f7937",
"object": "assistant.deleted",
"deleted": true,
"request_id": "6af9320f-0430-9d01-b92f-d1beb6424dc5"
}
输出删除智能体后的状态
9. 删除智能体的关联文件
9.1 代码示例
用于创建可附在智能体内部的文件
curl --location --request DELETE 'https://dashscope.aliyuncs.com/api/v1/assistants/asst_0678aa33-43e2-4268-95e6-b0010f9f7937/files/file-abc456' \
--header 'Content-Type: application/json' \
--header 'Authorization: Bearer <YOUR-DASHSCOPE-API-KEY>'
9.2 输入参数解释
输入参数名字 | 输入参数的描述 | 参数类型 | 是否必须 |
assistant id | 创建智能体关联文件所属的智能体id | str | 是 |
file id | 需要创建的文件file id | str | 是 |
9.3 输出参数解释
{
"id": "file-abc456",
"object": "assistant.file.deleted",
"deleted": true,
"request_id": "a86d991a-2e5d-958d-9950-f302d1e94894"
}
输出删除的智能体关联文件状态,并包含除了用户输入以外参数的其他额外字段:
id :file id
request_id :请求id