• 关于 Milvus
  • 开始使用
  • 概念
  • 用户指南
  • 数据导入
  • AI 工具
  • 管理指南
  • 工具
  • 集成
  • 教程
  • 常见问题解答
  • API Reference

使用 Jev 和 Milvus 进行搜索

向量搜索可查找与查询相关的信息。构建一个有用的搜索应用程序还涉及一系列决策:哪些段落真正回答了问题、是否可以复用之前的答案,以及Agents是否拥有足够的证据来停止搜索。

Milvus 和 Jev 分别负责该工作流的不同环节。Milvus负责存储 Embeddings 并检索候选记录,同时提供元数据过滤器以满足产品版本或知识库范围等约束条件。Jev则根据指令评估检索到的文本含义。您的应用程序可以利用其判断结果来筛选证据或控制后续的搜索步骤。

Jev 具体做什么?

一个 Jev 请求会提供上下文以及一个或多个判断问题。其类型化输出包括固定选项中的选择、有序评分以及“是/否”的概率。这些输出使应用程序代码无需解析自由形式的解释即可做出决策。在需要时,生成模型仍可编写答案或后续搜索查询。

例如,用户询问如何安装 Atlas v2。Milvus 可以将检索范围限制在 v2 文档中,并返回关于安装、升级和故障排除的类似段落。随后,Jev 会评估哪些段落解释了初始设置。应用程序将选定的证据传递给答案生成模型。

职责分工非常明确:

  1. 使用 Milvus 检索:在所需的元数据约束范围内查找候选内容。
  2. 由 Jev 进行判断:根据问题及特定任务的标准评估这些候选内容。
  3. 在应用程序代码中执行:重新排序结果、过滤上下文、复用现有答案或继续搜索。

部分决策在检索前即已完成。Jev 可在文档进入 Collection 前选择搜索范围或对其进行评估。访问控制和精确过滤仍由应用程序负责。

探索搜索场景

“使用 Jev 搜索”Collection包含九个可运行的教程。每个教程都使用一个小型合成数据集,并展示检索到的记录、判断结果以及相应的操作。

筛选更优质的证据

  • 重新排序搜索结果:重新排列文档和编码代理的记忆。关于笔记本电脑端口错误的记忆可能与容器连接问题相似;而更有用的记忆则记录了实际的容器-主机修复方案。
  • 过滤检索到的上下文:在 Milvus 应用版本过滤器后,将初始安装说明与升级及故障排除段落区分开来。
  • 重新排序图关系:通过同时选择“书籍到作者”的桥梁关系和“作者到出生地”的关系,回答关于某本书作者出生地的问题,并在检索源段落时保留该排序。

控制搜索与答案复用

  • 决定何时停止搜索:生成模型根据累积证据提出搜索方案,而 Jev 则判断原始问题是否可解答。示例涵盖直接答案、两跳问题以及因达到搜索限制而无法获得答案的不可用事实。
  • 路由搜索查询:选择文档、计费或内存搜索,然后应用相应的 Milvus 过滤器。超出范围的查询将走单独的路径。
  • 验证语义缓存复用:检索一个相似的缓存请求,然后检查其答案是否也满足新请求的任务、语言和上下文要求。

优化并检查知识管道

  • 索引前对文档进行筛选:区分实质性的操作指南与宣传性或不完整的材料,并分别执行索引、审核和排除操作。
  • 筛选检索到的段落:识别试图误导助手的文本,同时保留常规的安全建议。这是一项额外的筛选步骤,并非安全保证。
  • 评估搜索证据:判断段落的相关性、证据是否充分,以及答案是否包含缺乏依据的论断。示例中故意移除证据或添加缺乏依据的陈述,以使区别显而易见。

现成的重新排序接口

Milvus Model提供了一个应用端的JevRerankFunction 接口:传入查询和候选文档文本,即可获得按相关性排序、带有原始索引的评分结果。使用这些索引对 Milvus 返回的记录进行重新排序。

Jev集成已合并。请参阅当前 API 的实现和构造函数选项。它接受TYPESAFE_API_KEY ,默认值为jev-latest 。请使用包含此集成的包版本。

当前的封装器采用“主张与证据”相关性提示。请确认此标准是否符合您的任务需求。对于自定义判断(如记忆兼容性、停止或路由),请直接参考链接中的教程,使用 TypeSafe API 进行操作。这些教程演示了如何从 Python 应用程序代码中直接调用 API。

在 Milvus 上试用

在 Colab 中打开重新排序教程,开始进行候选结果检索和排序。有关本地配置和完整的教程列表,请参阅Collection 的 README 文件。

示例中使用Gemini API 密钥进行Embeddings 处理,使用TypeSafe API 密钥调用Jev。agent-search 教程还使用 Gemini 进行查询和答案生成。示例文本将发送至这些 API 提供商,调用可能消耗积分。

教程默认使用Milvus Lite运行,并包含连接 Milvus 服务器或Zilliz Cloud 的选项。无论哪种部署方式,工作分工均保持一致:Milvus 负责检索候选答案,应用程序将相关文本发送至 Jev 进行判定。

请将这些示例视为制定您自身标准和阈值的起点。相关性评分并不能保证答案的正确性,且这些小型教学数据集无法体现生产环境中的准确性或速度。

探索实现方案与评估结果

以下开源项目将这些思路应用到了更大的搜索工作流中。其链接的报告详细说明了各实验的数据集、对比结果及局限性。

项目搜索用例Jev 项目
MemSearch面向编码 Agents 的持久性 Markdown 记忆Jev 实现·评估
向量图 RAG多跳问题的情境向量与图检索Jev 实现·评估
DeepSearcher基于私有知识的迭代搜索实验运行器·搜索终止评估(独立实验)
GPTCache对兼容请求重复利用答案Jev 实现·评估

DeepSearcher 的贡献是一项独立的搜索终止实验。其他实现链接展示的是针对特定任务的 Jev 集成方案。这些项目的结果应结合其各自的评估背景来解读,而非将其视为通用的基准。

翻译自DeepL

想要更快、更简单、更好用的 Milvus SaaS服务 ?

Zilliz Cloud是基于Milvus的全托管向量数据库,拥有更高性能,更易扩展,以及卓越性价比

免费试用 Zilliz Cloud
反馈

此页对您是否有帮助?