
如今,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?让我们知道您计划如何利用应用程序中的多代理工作流程!
版权声明
本文为本站原创内容,转载需注明文章来源(https://www.eiefun.com),另:文中部分素材可能会引用自其他平台,如有侵权或其它,请联系 admin@eiefun.com,我们会第一时间配合删除