构建可以调用模型去使用工具、执行任务的智能体。

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"}}'

添加到调用pluginheader里.

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