文章详情

利用OpenAI新发布的SDK与Box平台构建高效的多代理工作流程
利用OpenAI新发布的SDK与Box平台构建高效的多代理工作流程

如今,OpenAI推出了新的代理SDK,这是一个轻巧而功能强大的框架,旨在帮助开发人员轻松构建多代理工作流程。这个新的SDK简化了精心策划LLM...

更新:

2025-04-03 20:00:02

利用OpenAI新发布的SDK与Box平台构建高效的多代理工作流程

如今,OpenAI推出了新的代理SDK,这是一个轻巧而功能强大的框架,旨在帮助开发人员轻松构建多代理工作流程。这个新的SDK简化了精心策划LLM驱动的代理的过程,每个SDK都配备了特定的说明,工具,护栏和交接,从而无缝执行复杂的任务。

代理商在其基础上,SDK介绍了几个关键功能:

代理:配备有说明,工具和执行约束的可配置LLM。交接:使代理可以将控制转移到其他代理执行专业任务的机制。护栏:验证输入和输出的一种方法,确保遵守约束和准则。跟踪:内置执行跟踪以捕获,调试和优化代理工作流程。

为了探索此新SDK的功能,我们创建了一个演示,将OpenAI代理与框集成在一起,使代理可以找到并查询存储在框中的文档。目的是为代理提供一组工具,以在使用OpenAI强大的新WebSearchTool和LLM的同时,从该内容中分析和生成洞察力。

如果您想修改此演示,则可以在我们的社区GitHub存储库中获得源代码。

为了测试我们的实施,我们将各种科技公司的第四季度收益报告上传到了框中。然后,我们的Openai驱动的代理人的任务是:

根据用户查询找到特定的报告。从每个文档中提取相关信息。生成一份分析报告,比较公司之间的财务绩效。将框和WebSearch组合在一起,以根据此分析更深入地了解特定主题。

代理方法使我们能够有效地分开问题 – 一种专门用于文档检索的盒子和数据提取的代理。从这里,我们将上下文交给Openai。

文档搜索的自动化:代理可以使用元数据和自然语言查询有效地找到存储在框中的报告。无缝提取结构化数据:借助Box的AI功能和OpenAI的处理能力,可以自动提取关键财务指标。使用交接的多步推理:代理协作,在每个步骤中将任务传递给正确的专业代理商。 WebSearchTool():使用单个导入和一行代码,您可以轻松地将实时Internet数据添加到专有企业数据中,以获得更广泛的见解。

该样本的核心非常直截了当。我们定义一个代理,以及可用的工具:

box_agent =代理(名称=“盒子代理”,说明=“”“”您是一个非常有用的代理商。您是财务专家。您可以从包装盒中访问许多工具,使您在整体上或通过设置标准搜索框中的文件。您也可以要求Box AI回答有关文件或您的问题可以从文件中检索文本。您的目标是帮助用户查找他们需要的信息。 ”“”,工具= [ file_search, ask_box, get_text_from_file, box_search_folder_by_name, box_list_folder_content_by_folder_id, WebSearchTool(), ],, )

一个简单的用户输入与代理交互:

异步def main(): USER_MSG =输入(“我今天如何帮助您: n”)代理= box_agent输入:list [tresponseinputitem] = [{“ content”:user_msg,“ prole”:“ user”}]而真:结果= runner.run_streamed(代理人,输入=输入, )在结果中进行event.stream_events()的异步:如果是IsInstance(事件,ResponseTextDeltaevent):打印(event.delta,end =“”,flush = true) Elif isInstance(事件,响应,响应):打印(“ n”)答案= strip_markdown(result.final_output)答案。 print(f“ {atnews} n”)输入= result.to_input_list()打印() USER_MSG =输入(“随访: n”) inputs.append({“ content”:user_msg,“ prole”:“ user”})

我们实施了不同的工具供代理访问框。例如,我们可以为OpenAI提供一个工具,向Box AI询问文件:

@function_tool async def ask_box(file_id:str,提示:str) - > str:> str: ”“”向框中的文件询问框中的文件。类型:功能args: file_id(str):要读取的文件的ID。提示(str):提示询问AI。类型:功能返回: str:文件的文本内容。 ”“” ai_agent = box_ai_agent_ask()响应= box_file_ai_ask( boxauth()。get_client(),file_id,提示=提示,ai_agent = ai_agent )返回响应

最后一个级别是与盒子API的实际交互:

def box_file_ai_ask(客户:盒装, file_id:str,提示:str, ai_agent:aiagentask =无) - > str:模式= createAiaskMode.Single_item_qa ai_item = aiitembase(id = file_id,type = aiitembasetypefield.file)响应= client.ai.create_ai_ask(模式=模式,提示=提示,项目= [ai_item],ai_agent = ai_agent )返回响应file_search – 使用查询,文件扩展名和其他参数在框中搜索文件get_text_from_file读取特定框文件的文本内容ask_box – 询问框AI有关文件内容的问题box_search_folder_by_name在其名称中找到一个文件夹box_list_folder_content_by_folder_id列出文件夹的内容WebSearchTool() – 从网络中获取相关的见解以补充您的专有数据。

就像我们使用新的OpenAI SDK创建了一个代理,以访问框中的内容。

当您将更多上下文源带入折叠时,这些概念的应用确实会发光。想象一下,将更多的代理结合在一起,以访问您自己的内部记录系统,从内部网站上阅读最新系统,访问您的Salesforce以及其他SaaS系统。

您是否有兴趣探索如何在工作流程中使用OpenAI的代理SDK?让我们知道您计划如何利用应用程序中的多代理工作流程!

Copyright © 2024 版权所有:思能智游网 豫ICP备2023018828号-1