腾讯科技讯 4月18日消息,据国外媒体报道,美国当地时间周三,人工智能初创公司OpenAI发布了Assistants API更新,为这种专门帮助构建人工智能助手的工具新增了不少功能,比如更快更准确的文件搜索工具、矢量存储和工具选择参数。
Assistants API测试版于2023年11月推出,新版本被称为OpenAI-Beta: assistants=v2。这款工具旨在帮助开发者为各种软件任务构建助手。它可以用特定的指令调用OpenAI模型,并行访问多个工具,支持持久线程,访问多种格式的文件。
每个Assistant可检索10000个文件
在最更新中,OpenAI推出了一款名为file_search的改进检索工具。现在,每个Assistant最多能够检索高达10000个文件,相较于之前的版本,检索能力提升了500倍。同时,这款工具的检索速度也得到了显著提升,支持多线程搜索并行查询,从而大大提高了检索效率。此外,file_search还具备增强的重新排序和查询重写功能,使得搜索结果更加精准和符合用户需求。
除了file_search,OpenAI还在Assistants API中引入了vector_store对象功能。当文件被添加到矢量存储中时,它们会被自动解析、分块和嵌入,从而准备好进行高效的搜索。这一功能不仅简化了文件管理和计费过程,还使得矢量存储能够跨Assistant和线程使用,为用户提供了更加灵活和便捷的使用体验。
管理线程和消息
线程与消息共同构成了助手与用户之间的会话流。在OpenAI的Assistants API中,线程可以存储的消息数量是不受限制的,这意味着用户可以进行长时间的、深入的对话。然而,当消息的总大小超过了模型能够处理的上下文窗口时,线程会智能地截断消息,优先删除那些它认为相对不那么重要的消息。
创建线程时,您可以附带一个初始的消息列表,这些消息可以包含文本、图像或文件附件等多种形式。为了更便捷地添加文件到线程中,OpenAI提供了tool_resources这一辅助方法。当然,用户也可以直接通过thread.tool_resources添加文件。需要注意的是,目前用户创建的消息尚不支持包含图像文件,但OpenAI正计划在未来增加这一功能。
Assistants API会自动管理消息的截断,确保它们始终保持在模型能够处理的最大上下文长度之内。
控制最大token使用数量
OpenAI赋予了用户更多的控制权,允许他们在Assistants API中设定每次运行所使用token的最大数量。这一功能不仅有助于用户更好地管理token的使用成本,还能有效优化资源的利用。此外,用户还可以灵活设置每次运行中使用的以前或最近消息的数量限制,以满足不同的使用场景和需求。
为了实现对单个运行中(Run)tokens使用的精准控制,用户在创建Run时,可以设定max_prompt_tokens和max_completion_tokens两个参数。这些限制将作用于整个运行生命周期中所使用的tokens总数,确保每次运行都在预定的资源范围内进行。
以实际操作为例,假设我们初始化一个Run,将max_prompt_tokens设置为500,max_completion_tokens设置为1000。这意味着第一次完成将会把线程截断到500个tokens,并将输出限制在1000个tokens以内。如果在第一次完成中仅使用了200个提示tokens和300个完成tokens,那么第二次完成将拥有剩余的300个提示tokens和700个完成tokens的可用限制。
如果完成过程达到了max_completion_tokens的限制,那么该运行将以不完整状态终止。
轮询助手
为了保持运行状态的实时更新,用户需要定期检索运行对象。每次检索时,用户都可以检查运行状态,进而决定应用程序的下一步操作。为了简化这一过程,OpenAI在Node和Python SDK中提供了轮询助手功能。
这些助手能够自动为用户轮询运行对象,并在运行对象达到终端状态时将其返回给用户。这极大地减轻了用户的工作负担,让他们能够更专注于应用程序的核心逻辑。
当运行处于in_progress状态(即非终端状态)时,线程将被锁定。这意味着:用户将无法向该线程添加新的消息,也无法在该线程上创建新的运行实例。这一机制确保了线程在处理运行时任务的连续性和一致性,避免了因并发操作而可能引发的冲突和错误。
此外,OpenAI还进行了以下更新:
OpenAI增加了对tool_choice参数的支持,该参数可用于在特定运行(Run)中强制使用特定工具,如file_search、code_interpreter或函数。
现在,用户也可以使用角色助手创建消息,以便在线程中创建自定义对话历史记录。
Assistant和运行对象现在支持流行的模型配置参数,如温度、response_format (JSON模式)和top_p等。
此外,用户可以在Assistants API中使用微调过的模型。目前,只支持GPT-3.5-turbo-0125的微调版本。