> 自媒体 > (AI)人工智能 > 带有检索工具的 OpenAI 助手
带有检索工具的 OpenAI 助手
来源:架构即人生
2023-11-17 16:41:03
510
管理

Assistant实际上是 OpenAI 版本的自治代理。OpenAI 与 Assistant API 的愿景是帮助开发人员构建强大的 AI 助手,这些助手能够通过一系列工具执行各种任务。

一些背景

在尝试 OpenAI 的 Assistant API 时,我感觉到 OpenAI 将 Assistant 视为基于 LLM 的代理,或使用工具的自主代理。

要创建 Assistant,您需要指定 model Assistant 必须使用的。

instructions 和 content 参数可用于用自然语言描述助手。可以 instructions 定义助手的目标,类似于用于聊天的系统消息。

OpenAI 助手可以访问多达 128 个工具,这些工具可以由 OpenAI 托管,也可以是第三方工具,通过function call 访问。

目前还有两种基于 OpenAI 的工具,分别 code_interpreter 和 retrieval 。

OpenAI 的下表定义了Assistant的构建块。

(Assistant)助手可以做什么?

助手可以访问 OpenAI 模型,其中包含描述助手个性和功能的说明。对于其他框架(如LangChain)上下文中的代理,某种元提示是代理的核心。

因此,OpenAI 的这种方法在很大程度上是一种无提示的方法。

助手可以并行访问多个工具,包括 OpenAI 托管工具和通过函数调用访问的自定义工具。

对话和对话管理是通过线程执行的。线程是持久的,用于存储消息历史记录。当对话对于模型上下文长度来说太长时,也会执行对话的截断。

线程创建一次,并在对话进行时将消息附加到消息列表中。

检索工具

助手的功能通过检索得到扩展,整合了其固有模型之外的外部知识。这可能包括用户提供的专有产品数据或文档。

当文档上传并传输到助手时,OpenAI 会自动将文档分成更小的段,创建索引,存储嵌入,并利用矢量搜索获取相关信息以响应用户查询。

允许的最大文件大小为 512MB。检索支持多种文件格式,例如 .pdf、.md、.docx 等。

您可以在下面的“支持的文件”部分中找到有关支持的文件扩展名及其相应的MIME类型的更多信息。

在 GUI 上可以看到线程下方,这些对话都是通过 Python notebook进行的,并且可以通过 GUI 检查会话线程。

以下是在 Python Notebook中运行 OpenAI 助手并使用 Retriever 工具的完整代码。您只需要一个 OpenAI API 密钥。

pip install openaiimport osimport openaiimport requestsimport jsonfrom openai import OpenAI#Pass the retrieval in the tools parameter of the Assistant to enable Retrievalapi_key = "sk-rxolBSN8pMbAaQ7DUsxlT3BlbkFsfsfsfsfswrewrgwwrAfKazZs"client = OpenAI(api_key=api_key)assistant = client.beta.assistants.create( name="General Knowledge Bot", instructions="You are a customer support chatbot. Use your knowledge base to best respond to customer queries.", model="gpt-4-1106-preview", tools=[{"type": "retrieval"}])#File upload via Colab Notebookfrom google.colab import filesuploaded = files.upload()for name, data in uploaded.items(): with open(name, 'wb') as file: file.write(data) print ('saved file', name)#Pass the retrieval in the tools parameter of the Assistant to enable Retrieval#Accessing the uploadedfile = client.files.create( file=open("/content/Rugby_World_Cup.txt", "rb"), purpose='assistants')api_key = "sk-rxolBSN8pMbAaQ7DUsxlT3BlbkFsfsfsfsfswrewrgwwrAfKazZs"client = OpenAI(api_key=api_key)assistant = client.beta.assistants.create( name="General Knowledge Bot", instructions="You answer general knowledge questions as accureately as possible.", model="gpt-4-1106-preview", tools=[{"type": "retrieval"}])##Files can also be added to a Message in a Thread. These files are only accessible within this specific thread. ##After having uploaded a file, you can pass the ID of this File when creating the Message.message = client.beta.threads.messages.create( thread_id=thread.id, role="user", content="Who won the 2023 rugby world cup?", file_ids=[file.id])run = client.beta.threads.runs.create( thread_id=thread.id, assistant_id=assistant.id, instructions="You answer general knowledge questions as accureately as possible.")run = client.beta.threads.runs.retrieve( thread_id=thread.id, run_id=run.id)messages = client.beta.threads.messages.list( thread_id=thread.id)print (messages)

在线程下方,提出了一个关于最近发生的事件的问题,该事件超出了 LLM 的知识范围,以及助手通过检索器工具检索数据。

"SyncCursorPage"["ThreadMessage"]"(data="["ThreadMessage(id=""msg_nQqma6fUFnx9WhT5ilA11SxU","assistant_id=""asst_Z2FlbTYtCGetYhjDn7nroXEg","content="["MessageContentText(text=Text(annotations="[],"value=""South Africa, known as the Springboks, nnwon the 2023 Rugby World Cup by defeating New Zealandnn in the final."")", "type=""text"")" ], created_at=1699450387, "file_ids="[ ], "metadata="{ }, "object=""thread.message", "role=""assistant", "run_id=""run_hiQaWXIS9gIdWEV86vC3h9zE", "thread_id=""thread_s0b6JzLU2o2uXZsw3b21LVcn"")", "ThreadMessage(id=""msg_2zeWwRIbBiZzMp7Q1YnnVgjN", "assistant_id=None", "content="[ "MessageContentText(text=Text(annotations="[ ], "value=""Who won the 2023 rugby world cup? The file I uploaded cannn help you with that."")", "type=""text"")" ], created_at=1699450378, "file_ids="[ "file-e0GVGxhtPOOVuRdWDsd2Z8Jo" ], "metadata="{ }, "object=""thread.message", "role=""user", "run_id=None", "thread_id=""thread_s0b6JzLU2o2uXZsw3b21LVcn"")"],"object=""list","first_id=""msg_nQqma6fUFnx9WhT5ilA11SxU","last_id=""msg_2zeWwRIbBiZzMp7Q1YnnVgjN","has_more=False)"

原文:https://cobusgreyling.medium.com/openai-assistant-with-retriever-tool-08e9158ca900

0
点赞
赏礼
赏钱
0
收藏
免责声明:本文仅代表作者个人观点,与本站无关。其原创性以及文中陈述文字和内容未经本网证实,对本文以及其中全部或者 部分内容、文字的真实性、完整性、及时性本站不作任何保证或承诺,请读者仅作参考,并请自行核实相关内容。 凡本网注明 “来源:XXX(非本站)”的作品,均转载自其它媒体,转载目的在于传递更多信息,并不代表本网赞同其观点和对 其真实性负责。 如因作品内容、版权和其它问题需要同本网联系的,请在一周内进行,以便我们及时处理。 QQ:617470285 邮箱:617470285@qq.com
相关文章
Kimi团队发布K1.5:让AI像人类一样\u0026#34;边思考边学习\u0026#34;的突破..
这项由Kimi团队开展的研究发表于2025年6月3日,详细介绍了他们最新的多模..
DeepSeek对比Kimi:两个国产AI谁更适合办公?实测告诉你答案..
说实话,最近AI工具多得让人眼花缭乱。DeepSeek和Kimi,两个名字我都听过..
涉嫌违规收集个人信息 Kimi等多款AI应用被通报
5月20日,国家网络与信息安全信息通报中心发布通报,经公安部计算机信息..
阿里Qwen开源模型为什么能火?
阿里Qwen开源模型能火,是因为它用过硬的技术、开放的态度和实惠的价格,..
谁是开源大模型之王?Llama、DeepSeek还是Qwen?
“友商,你们拿什么和我比?”“友商,你们拿什么和我比?”这不是哪家公..
开源Qwen一周连刷三冠,暴击闭源模型!基础模型推理编程均SOTA..
鱼羊 发自 凹非寺量子位 | 公众号 QbitAI卷疯了,通义千问真的卷疯了。Qw..
Qwen负责人转发2025宝藏论文,年底重读「视觉领域GPT时刻」..
闻乐 发自 凹非寺量子位 | 公众号 QbitAI2025最后几天,是时候来看点年度..
成本骤降97% 实测Qwen3.5小模型 国产大模型破局?
阿里推出Qwen3.5系列三款中型开源大模型,性能媲美国际顶尖竞品,开发者..
曝京东拦截员工使用外部AI,美团内部开始限制阿里Qwen模型..
IT之家 4 月 8 日消息,据“大厂日爆”公众号消息,京东在 3 月底正式限..
关于作者
呼唤(普通会员)
文章
1927
关注
0
粉丝
0
点击领取今天的签到奖励!
签到排行

成员 网址收录40418 企业收录2986 印章生成263660 电子证书1157 电子名片68 自媒体106085

0
0
分享
请选择要切换的马甲:

个人中心

每日签到

我的消息

内容搜索