Assistant API 是文本生成API的一个演进,旨在简化智能体应用(Assistants)的创建过程,并为开发者提供丰富的工具支持(如函数调用和知识检索增强功能)。
什么是智能体应用
智能体应用是一类 AI 对话助手,具备以下功能特点:
支持多种基础模型:智能体应用可以配置多种基础模型,还可以添加系统提示词(Instructions)以调整模型的个性和能力。
支持多工具调用:智能体应用可以调用多个工具,可以是百炼官方工具(如代码解释器和夸克搜索),也可以是您自己构建的工具(通过函数调用的方式)。
支持对话管理:智能体应用使用线程对象来管理对话。线程对象存储了消息历史记录,并在整个对话超出模型的上下文长度时截断它。您只需创建一次线程对象,然后当用户回复消息时,简单地将消息附加到线程对象中。
体验智能体应用最简单的方式是在控制台上创建智能体应用,这种方式无需编程经验。您也可以按照Assistant API 快速入门指南创建智能体应用,逐步集成到您的业务代码中。
目前,“通过控制台”和“通过 Assistant API”创建的智能体应用(以下简称“控制台版本”和“API版本”),在功能和管理上存在细微差异,具体以实际产品为准:
功能:控制台版本支持长期记忆,API版本暂不支持。
管理:控制台版本只能通过百炼控制台编辑,API版本只能通过 Assistant API 编辑。
与文本生成 API 的区别
文本生成 API 的基本要素是消息(Messages),你可以使用模型(Models,如 Qwen-Plus、Qwen-Max 等)生成消息。在使用这种轻量级的 API 时,您需要手动管理对话状态、定义工具、检索知识库和执行代码,才能构建一个简单的智能体应用。
在文本生成 API 的基础上,Assistant API 的基本要素演进为:
消息对象(Messages):封装了对话信息的角色和内容,类似于文本生成 API 的消息。
智能体对象(Assistants):封装了一个基础模型,默认指令和工具。
线程对象(Threads):表示当前的对话状态。
运行对象(Runs):驱动智能体在一个对话线程上执行,包括文本响应和工具使用。
接下来,您将进一步了解这些基本元素的交互方式,以构建一个智能体应用。
交互方式
Assistant API 使用线程(Thread)机制来确保消息按顺序执行,从而维护对话的连贯性。具体流程如下:
创建消息实例:用户使用
Message.create()
方法创建消息实例,将其归属于特定线程,确保消息与上下文正确关联。启动运行环境:使用
Run.create()
函数初始化智能体对象的运行环境,提供消息处理所需的配置。等待结果:调用
wait()
函数等待智能体对象完成处理并返回结果,确保在获取响应前程序保持同步,避免数据乱序。
以一个简单的绘画智能体应用为例:
|
开始使用
如需调试大语言模型或快速掌握 Assistant API,以下文档将为您提供详细指导:
模型体验:在这里,您可以测试大模型的推理能力,从而在构建 Assistant 时选择您偏好的模型。
快速入门:在这里,您可以找到 Assistant API 的基本用法和示例,快速上手构建您的应用。
API 手册:在这里,您可以浏览 Assistant API 各组件的参数详解,帮助您解决开发中的问题。
更多信息
模型支持
模型系列 | 模型标识符 |
通义千问-Turbo | qwen-turbo |
通义千问-Plus | qwen-plus |
通义千问-Max | qwen-max |
通义千问2-开源版-57B | qwen2-57b-a14b-instruct |
通义千问2-开源版-72B | qwen2-72b-instruct |
模型的兼容性请以 Assistant API 的实际执行结果为准,更多详情可参考模型列表。
工具支持
工具(tools) | Assistant API 标识符 | 用途 |
代码解释器插件 | code_interpreter | 帮助执行 Python 代码,适用于编程问题、数学计算、数据分析等。 |
夸克搜索插件 | quark_search | 用于实时检索网络信息,增强知识获取能力。 |
图片生成插件 | text_to_image | 将文字描述转为图像,丰富回复形式。 |
自定义插件 | ${plugin_id} | 连接自定义业务接口,扩展 AI 业务能力。 |
函数调用(Function calling) | function | 在本地设备上执行特定功能,无需依赖外部网络服务。 |
插件的兼容性请以 Assistant API 的实际执行结果为准,更多详情可参考插件列表。