OpenAI Vector Stores

OpenAI Vector Stores

OpenAI API 内置的托管向量存储,供 file_search 检索。

核心功能

Vector Stores 是 OpenAI API 内的托管知识库容器而非独立产品:文件上传后由平台自动分块、嵌入并索引,供 Responses API 的 file_search 工具调用,也可直接检索。它省掉嵌入与分块工程,代价是嵌入模型与索引结构不可选。

功能亮点

托管工具

file_search 由 OpenAI 托管执行,模型决定何时调用,应用端不写检索代码。

自动分块

入库默认按 800 token 分块、400 token 重叠,可自定义。

带引用回答

响应里附 file_citation 注解,指明答案取自哪个文件,方便溯源核对。

属性过滤

每个文件最多 16 个 attributes 键,检索时用 in 等条件筛掉无关文档。

适用场景

• 给客服助手接上产品手册 PDF,让模型回答时自动带出原文引用
• 在 Responses API 里为 Agent 提供内部知识库,不用自建检索服务
• 对已上传文档做纯语义检索,用 vector_stores.search 取回片段自行拼 prompt

安装配置

bash
开通服务:
1) 注册 OpenAI 平台账号,在 dashboard 创建 API Key 并导出为环境变量 OPENAI_API_KEY
2) 用 Files API 上传文件(purpose="assistants")
3) 创建 vector store,并把文件加入其中
4) 轮询文件状态直到变为 completed,即可被检索

安装客户端 SDK:
pip install openai        # Python
npm install openai        # Node.js

使用方法

python
from openai import OpenAI

client = OpenAI()

# 1) 上传文件
with open("handbook.pdf", "rb") as file_content:
    result = client.files.create(
        file=file_content,
        purpose="assistants",
    )
file_id = result.id

# 2) 创建 vector store
vector_store = client.vector_stores.create(name="knowledge_base")
print(vector_store.id)

# 3) 把文件加入 vector store
client.vector_stores.files.create(
    vector_store_id=vector_store.id,
    file_id=file_id,
)

# 4) 轮询直到 status 变为 completed
print(client.vector_stores.files.list(vector_store_id=vector_store.id))

# 5a) 直接做语义检索
results = client.vector_stores.search(
    vector_store_id=vector_store.id,
    query="What is the return policy?",
)

# 5b) 或挂到 Responses API 的 file_search 工具上,由模型自行检索
response = client.responses.create(
    model="gpt-5.6",
    input="What is deep research by OpenAI?",
    tools=[{"type": "file_search", "vector_store_ids": [vector_store.id]}],
)
print(response)

关键指标

尚未核验对标产品,此处只列本工具自身指标,不做对比结论。

指标OpenAI Vector Stores
价格免费增值
开源
上手难度入门

相关工具

优点

  • 分块、嵌入、索引全部托管,几十行代码就能给模型接上私有文档
  • file_search 由 OpenAI 执行,响应自带 file_citation 引用,便于溯源核对
  • 总存储 1 GB 以内免费,超出按 0.10 美元/GB/天计费,小规模知识库成本很低
  • 支持 attributes 属性过滤与 max_num_results,可在 token 消耗与召回质量间取舍

缺点

  • 单个文件上限 512 MB 且不超过 500 万 token,超大文档需要自行先切分
  • 只接受文档类文件格式(pdf、docx、md、txt、常见代码文本等),不能直接写入自备向量
  • 嵌入模型、索引结构与相似度算法均不可选,检索行为无法深度调优
  • file_search 按账号等级限速(Tier 1 为 100 RPM),且能力完全绑定在 OpenAI 平台内