Assistant API:简化大型语言模型应用开发的新方案
Assistant API 是一种集成会话管理和插件机制的解决方案,简化了大型语言模型应用的开发。它支持多种工具如代码解释器、夸克搜索和图片生成等,以及多个模型如通义千问系列。通过智能体、线程、消息和运行四大核心组件,确保了消息的有序执行和对话的连贯性。
Assistant API 简介
Assistant API 提供了一套集成会话管理和插件机制的解决方案,极大地简化了大型语言模型应用的开发过程。本文将详细介绍 Assistant API 的核心概念和运行机制,帮助您更好地理解和运用 Assistant API 来构建自己的大型语言模型应用。
Assistant
Assistant,也称为“智能体”或 Agent,是一款融合了大型语言模型和多种工具的 AI 应用。除了能够回答问题外,它还能执行代码、生成图像、联网搜索,甚至调用您的业务接口或本地函数。Assistant 支持对话交互管理,能够保存历史消息记录,并允许用户修改历史消息。如果对回答不满意,可以要求智能体重新生成;如果想进一步完善问题,也可以修改后再次请求回答。
运行机制
Assistant 接收用户输入,并由内置的大语言模型判断是否需要调用工具。
- 如果需要调用工具,大语言模型会选择合适的工具,工具返回的结果和用户内容合并后再次输入到大语言模型,由大语言模型生成内容并输出。
- 如果无需调用工具,大语言模型将直接生成内容并输出。
支持的模型
模型名称 | 模型标识符 |
---|---|
通义千问-Turbo | qwen-turbo |
通义千问-Plus | qwen-plus |
通义千问-Max | qwen-max |
通义千问2-开源版-57B | qwen2-57b-a14b-instruct |
通义千问2-开源版-72B | qwen2-72b-instruct |
说明:通义千问2-开源版暂不兼容图片生成工具。最新的兼容性状态,请以 Assistant API 实际执行结果为准。更多模型详情请参考 模型列表。
支持的工具
工具名称 | Assistant API 标识符 | 用途 |
---|---|---|
Python 代码解释器插件 | code_interpreter | 帮助 Assistant 执行 Python 代码,适用于编程问题、数学计算、数据分析等。 |
夸克搜索插件 | quark_search | 帮助 Assistant 实时检索网络信息,强化知识获取能力。 |
图片生成插件 | text_to_image | 帮助 Assistant 实现文字转图像功能,根据描述自动生成图片,丰富回应形式。 |
自定义插件 | ${plugin_id} | 帮助 Assistant 接入自定义业务接口,扩展 AI 业务能力。 |
函数调用 | function | Assistant 支持调用本地函数,能够在不依赖外部网络服务的条件下,直接执行设备或系统上的特定功能。Assistant 可以根据用户描述自主决定调用函数,并填入恰当的参数。 |
更多工具详情请参考 新版插件管理。
Assistant API 核心组件
Assistant API 包含四个核心组件:
组件名称 | 功能 |
---|---|
智能体(Assistant) | 功能强大的 AI 对话助手,结合了大型语言模型和多种高级工具。 |
线程(Thread) | 用户和智能体之间的会话线程,用于管理历史会话记录。 |
消息(Message) | 用户发送的消息,以及智能体回复的消息,以列表的形式保存在线程中。 |
运行(Run) | 将线程中存储的上下文信息输入到智能体,以完成一次运行。 |
您可以使用 Assistant API 创建一个类似于 百炼智能体应用 的 Assistant。Assistant API 的主要组件与百炼智能体应用控制台界面的大致对应关系如下图所示:
运行机制
Assistant API 采用线程(Thread)机制确保消息的有序执行,以此维护对话的时序连贯性。具体流程如下:
- 创建消息实例:用户通过
Message.create()
方法创建消息实例,该消息归属于特定的线程。这一步骤是初始化消息的基础,确保每条消息都能正确关联到上下文环境。 - 启动 Assistant 运行环境:利用
Run.create()
函数来初始化 Assistant 的执行环境。这为消息的处理提供了必要的运行时配置。 - 等待输出结果:调用
wait()
函数等待 Assistant 完成处理并返回结果。这一环节保证了程序在获取响应前保持同步,避免了数据乱序的风险。
Assistant API 内部实现了一个基于 Thread 的顺序消息队列,该队列自动依据消息的创建时间进行排序。这意味着 Assistant 将严格按照消息的时间顺序来接收和处理输入,从而产生与之对应的响应。
Assistant API 支持连续消息的无缝整合,不论是连续的用户查询还是智能体的连续反馈,都能在对话流程中平滑过渡。这种设计不仅增强了对话的自然流畅度,还显著提高了多轮交互的效率和体验。
开始使用
- 如需调试大型语言模型的推理能力,请访问 模型调试。
- 如需迅速掌握 Assistant API,请访问 快速入门。
- 如需了解 API 的示例与参数,请访问 Assistant API。