RAG 智能体如何开发?用 Python File Search 做一轮有出处的文档问答

用 Python 把示例文件加入 OpenAI 向量库,调用 File Search 回答问题,并分别核对引用与检索片段。

想用 Python 做一轮有出处的文档问答,可以先把文件放进 OpenAI vector store,再在 Responses API 中启用 File Search。这里的“RAG 智能体”只执行检索和回答,不会自动审批、修改业务系统或代替人工核对依据。示例使用虚构制度文件,运行会调用付费 API;请先确认账号可用模型与计费。

准备一份可检查的输入

在空目录创建 policy.txt,写入:《差旅制度 2026》:华东地区经理级住宿上限为每晚 600 元。华南地区经理级上限为每晚 550 元。 这只是演示数据,不是实际企业制度。用 python -m pip install -U openai 安装当前版 Python 包,并在运行环境设置 OPENAI_API_KEY;不要把密钥写进脚本或上传的文档。

RAG 智能体如何开发?用 Python File Search 做一轮有出处的文档问答

创建向量库并等待文件处理

OpenAI Retrieval 官方文档提供 vector_stores.create 和 vector_stores.files.upload_and_poll 的 Python 调用。后者会等待上传后的处理阶段,仍应检查返回对象的状态。

from openai import OpenAI

client = OpenAI()
store = client.vector_stores.create(name="travel-policy-demo")
with open("policy.txt", "rb") as source:
    indexed = client.vector_stores.files.upload_and_poll(
        vector_store_id=store.id, file=source
    )
print("vector_store_id:", store.id)
print("file_status:", indexed.status)

预期能看到一个 vs_ 开头的 ID 和已完成的文件状态;若处理失败或超时,先检查文件内容、格式和账号权限,不要继续把空库的回答当成检索结果。记录这个向量库 ID,后续清理演示资源时也要用到它。

发问并分开核对答案与检索结果

OpenAI File Search 官方文档说明该托管工具在 Responses API 中通过 file_search 和向量库 ID 启用;include=["file_search_call.results"] 可把检索结果纳入响应。下面的模型名是 2026 年 10 月文档示例值;若账户不支持,选用当前文档中本账户可用且支持 File Search 的模型。

response = client.responses.create(
    model="gpt-6-astra",
    input="根据上传的制度,华东经理住宿上限是多少?请指出文件出处;找不到就说找不到。",
    tools=[{"type": "file_search", "vector_store_ids": [store.id]}],
    include=["file_search_call.results"],
)
print(response.output_text)
for item in response.output:
    print(item.model_dump_json(indent=2))

预期答案应指出“每晚 600 元”并关联 policy.txt。检查输出中的 file_citation 是否指向这份文件,再看 file_search_call.results 是否真的包含相应原文;引用标记和检索命中是两项不同证据。再问“华北经理上限是多少”:样例文件没有这一项,理想结果是说明无法从文件确认。若答案有数字而检索结果没有对应条款,应判为未通过,先查文件是否已索引、是否用对向量库以及问题是否过于含糊。

本文代码依官方接口编写,未使用读者的 API Key 执行;模型输出、引用格式与费用以实际账户和当时接口为准。不要把上传含有个人或商业敏感信息的真实文件作为首次测试。

Ai菜鸟网。发布者:AI小管家,转载请注明出处:https://www.alyyhw.com/29910.html

赞 (0)
AI小管家的头像AI小管家
工业视觉质检模型怎么评估?用误检、漏检和召回率判断
上一篇 1天前
RAGFlow Agent 怎么搭建?从知识库检索组件到画布运行测试
下一篇 1天前

相关推荐

联系我们

联系我们

1

在线咨询: QQ交谈

邮件:admin@example.com

工作时间:周一至周五,9:30-18:30,节假日休息

关注微信
关注微信
分享本页
返回顶部