ChatGPT开发指南

OpenAI Embeddings 嵌入指南:构建语义搜索

作者:AI 使用指南编辑部 · 发布于 2026/7/13 · 更新于 2026/7/13

嵌入(Embedding)把文本转换为数值向量,让语义相近的内容在向量空间中更接近。它常用于语义搜索、推荐、聚类和检索增强生成,但嵌入本身不会写回答,也不会判断业务事实。

1、建立基本检索流程

  1. 清理并切分文档,保存标题、来源、权限和更新时间。
  2. 为每个片段生成嵌入向量并写入向量数据库。
  3. 为用户问题生成向量,检索最相近的片段。
  4. 先过滤当前用户无权访问的内容,再把相关片段交给模型回答。
  5. 在答案中保留来源,允许用户打开原文核对。

切分不能只按固定字符数粗暴截断。标题、段落、表格和列表等语义边界应该尽量保留,同时避免一个片段混入多个无关主题。片段过小会丢失上下文,过大则会降低检索精度并增加后续输入成本。

2、权限过滤必须早于生成

向量相似并不代表用户有权查看。每条向量都应带有租户、文档权限和版本元数据;检索阶段先进行权限过滤,不能让模型看到无权内容后再要求它“不要泄露”。删除原文时也要同步删除向量和缓存。

3、如何评测语义搜索

准备真实问题及人工标注的相关文档,测量目标片段是否进入前几条结果,同时检查无关结果和权限泄露。还应测试同义表达、缩写、拼写错误、中文长问题与专有名词。

模型和切分策略变化后需要重跑评测。若更换嵌入模型,通常还要重新生成并迁移已有向量,不能默认不同模型的向量可直接混用。下一页介绍在官方工具层中实现文件搜索。

参考来源