实用笔记:向量搜索、语义搜索与RAG:人工智能如何找到目标信息
《实用笔记》操作指南:向量搜索、语义搜索与RAG——人工智能如何帮助采用该模式的团队查找合同、检查项及可直接使用的代码片段。
本指南将逐步构建从原材料到可运行系统的完整流程,涵盖向量搜索、语义搜索以及RAG:人工智能如何找到恰当的上下文。重点在于可操作的步骤、明确的检查点,以及可直接放入代码库中的代码,无需猜测其用途。 在概览阶段,应在修改代码之前明确输入参数、各步骤的负责人以及完成标准。操作人员应能够从已知的检查点重新运行相应步骤,而无需推测隐藏的状态。 配置信息应与应用程序代码分开存放。环境文件、密钥存储以及功能开关应集中管理,以便操作人员无需查看整个系统结构即可进行审核。
关键词搜索的弊端
在处理关键词相关问题时,首先写下接口的规范:所需的输入参数、成功信号以及部分失败时的处理方式。这样的检查清单能确保后续的代码修改保持一致性。 同时记录正常流程和异常恢复流程。重试机制、人工审核环节以及错误消息处理都是产品本身的组成部分,而非后续需要补充的功能。 在调整提示词之前,先使用固定的问题集来衡量检索的准确率。仅仅更换提示词很难解决检索效果不佳的问题。
核心理念:将含义转化为数字
在处理“核心思路转化”阶段时,首先写下相关约定:所需的输入参数、成功标志,以及部分失败时的处理方式。这样的清单能确保后续的代码修改保持一致性。 优先选择小型、可测试的单元,而非冗长的脚本。当某个步骤失败时,故障应指向单一责任模块,而非复杂的流程链。 在调整提示词之前,先使用固定的问题集来测试召回率。仅仅更换提示词很难解决检索效果不佳的问题。
cat → [0.20, -0.40, 0.70]
dog → [0.60, 0.10, 0.50]
语义搜索与向量搜索:有何区别?
在处理语义搜索和向量阶段时,首先明确相关约定:所需的输入参数、成功标志以及部分失败时的处理方式。这样的清单能确保后续的代码修改始终符合约定。 将这一阶段视为输入与经过验证的输出之间的契约。为相关成果命名,定义成功判定标准,杜绝无声的半完成状态。 在调整提示词之前,先使用固定的问题集来衡量召回率。仅仅更换提示词很难改善较差的检索效果。 在处理语义搜索和向量阶段时,首先明确相关约定:所需的输入参数、成功标志以及部分失败时的处理方式。这样的清单能确保后续的代码修改始终符合约定。 将配置信息置于应用程序代码之外。环境文件、密钥存储以及功能开关应集中存放,以便操作人员无需查看整个系统结构即可进行审计。
向量搜索RAG工作流程的运作方式
将向量搜索RAG阶段视为可度量的对象来分析,其效果最佳。在扩大范围之前,需记录一个成功的案例、一个失败案例以及回滚说明。同时记录正常流程与故障恢复流程。重试机制、人工审核环节以及错误处理都属于产品本身的功能,而非后续需要补充的内容。应将分块策略与检索策略分开设计,当质量指标发生变化时,修改其中一项不应迫使另一项也必须重新编写。
第一阶段:构建向量存储
在第一阶段,将构建流程视为可度量的对象来处理效果最佳。在扩大范围之前,先记录一份理想的输出结果、一个故障案例以及回滚说明。 优先选择小型且可测试的单元,而非庞大的脚本。当某个步骤出现故障时,故障应指向单一责任模块,而非复杂的流程链。 将分块策略与检索策略分开。当质量指标发生变化时,修改其中一项不应迫使重新编写另一项。
第二阶段:回答用户问题
将第二阶段“Answer a”视为可度量的工作面时效果最佳。在扩大范围之前,需记录一份理想样本、一个失败案例以及回滚说明。 应将此阶段视为输入与已验证输出之间的契约。为相关成果命名,明确成功标准,杜绝默许的半完成状态。 将分块策略与检索策略分开。当质量指标发生变化时,修改其中一项不应强制重新编写另一项。 将第二阶段“Answer a”视为可度量的工作面时效果最佳。在扩大范围之前,需记录一份理想样本、一个失败案例以及回滚说明。 将配置置于应用程序代码之外。环境文件、密钥存储和功能标志应集中存放于一处,以便操作人员无需查看整个系统结构即可进行审计。
User question
→ question embedding
→ vector database similarity search
→ top matching chunks
→ LLM with question + context
→ grounded answer
向量数据库的作用是什么?
在修改代码之前,需先明确向量处理阶段的定义、该步骤的负责人以及终止标准。操作人员应能够从已知的检查点重新运行该步骤,而无需猜测隐藏状态。 需同时记录正常流程与异常恢复流程。重试机制、人工审核环节以及错误消息处理都是产品本身的组成部分,而非后续需要补充的功能。 必须引用能够支撑答案的具体内容。如果没有引用依据,操作人员就无法区分是虚假信息还是索引缺失导致的问题。
向量数据库与传统数据库
在将向量数据库与传统流程进行对比时,应在修改代码之前明确输入内容、各步骤的负责人以及终止标准。操作人员应能够从已知的检查点重新运行该步骤,而无需猜测其中的隐藏状态。相比冗长的脚本,更应采用小型且可测试的单元。当某个步骤失败时,故障原因应能指向具体的责任主体,而非复杂的流程问题。必须引用实际作为答案依据的段落;没有引用的话,操作人员就无法区分是虚假信息还是索引缺失所致。
这对 RAG 为何重要
为明确该阶段的重要性,应在修改代码之前确定输入参数、各步骤的负责人以及终止标准。操作人员应能够从已知的检查点重新运行相应步骤,而无需猜测隐藏状态。 应将此阶段视为输入与经过验证的输出之间的契约。为相关成果命名,明确成功判定标准,并杜绝默许的半完成状态。 需引用实际作为答案依据的段落。没有引用的话,操作人员就无法区分是幻觉内容还是索引缺失导致的错误。 为明确该阶段的重要性,应在修改代码之前确定输入参数、各步骤的负责人以及终止标准。操作人员应能够从已知的检查点重新运行相应步骤,而无需猜测隐藏状态。 应将配置信息置于应用程序代码之外。环境文件、密钥存储以及功能开关应集中存放于一个操作人员能够审核的位置,无需阅读整个系统结构。
三种实用的商业应用场景
在处理这三种实用商业应用场景时,首先需列出相关合同条款:所需输入、成功标志以及部分失败时的处理方式。这样的清单能确保后续的代码修改保持一致性。 同时记录正常流程和故障恢复流程。重试机制、人工审核环节以及错误消息处理都是产品本身的一部分,而非后续需要补充的功能。 在调整提示词之前,先使用固定的问题集来衡量检索效果。仅仅更换提示词往往无法解决检索能力不足的问题。
1. 内部知识助手
在完成“内部知识助手”第一阶段时,首先写下相关规范:所需的输入参数、成功标志以及部分失败时的处理方式。这样的检查清单能确保后续的代码修改保持一致性。 建议采用小型、可测试的单元,而非庞大的脚本。当某个步骤失败时,故障应指向单一责任模块,而非复杂的流程链。 在调整提示词之前,先使用固定的问题集来测试召回率。仅仅更换提示词很难解决检索效果不佳的问题。
2. 客户支持搜索
在处理客户支持搜索的这两个阶段时,首先需明确相关约定:所需的输入参数、成功标志以及部分失败时的处理方式。这份清单能确保后续的代码修改始终符合约定。 将这一阶段视为输入与验证后输出之间的契约。为相关成果命名,定义成功判定标准,杜绝默许的半完成状态。 在调整提示词之前,先使用固定的问题集来衡量检索覆盖率。仅仅更换提示词往往无法解决检索效果不佳的问题。 在处理客户支持搜索的这两个阶段时,首先需明确相关约定:所需的输入参数、成功标志以及部分失败时的处理方式。这份清单能确保后续的代码修改始终符合约定。 将配置信息与应用程序代码分开存放。环境文件、密钥存储以及功能开关应集中管理,以便操作人员无需查看整个系统结构即可进行审计。
3. AI智能体内存与工具
将3个AI智能体内存与阶段机制视为可测量的对象时,其效果最佳。在扩大范围之前,先记录一个成功的案例、一个失败案例以及回滚说明。 同时记录正常流程与恢复流程。重试机制、人工审核环节以及死信处理都是产品本身的组成部分,而非后续需要补充的内容。 应将分块策略与检索策略分开。当质量指标发生变化时,修改其中一项不应迫使重新编写另一项。
影响质量的实现方案选择
那些影响阶段实现的决策,最好将其视为可度量的指标来处理。在扩大范围之前,先记录一份优秀的实现案例、一个失败案例以及回滚说明。 相较于庞大的脚本,应优先选择小型且可测试的单元。当某个步骤出现故障时,故障原因应能明确指向某个具体的责任模块,而非复杂的流程链。 应将分块策略与检索策略分开。当质量指标发生变化时,修改其中一项不应迫使重新编写另一项。
核心要点
将“简单总结阶段”视为可度量的工作面时,其效果最佳。在扩大范围之前,需记录一份理想案例、一个失败案例以及回滚说明。 应将此阶段视为输入与已验证输出之间的契约。为相关成果命名,明确成功标准,杜绝默许的半完成状态。 将分块策略与检索策略分开。当质量指标发生变化时,修改其中一项不应强制重新编写另一项。 将“简单总结阶段”视为可度量的工作面时,其效果最佳。在扩大范围之前,需记录一份理想案例、一个失败案例以及回滚说明。 将配置信息置于应用程序代码之外。环境文件、密钥存储和功能开关应集中存放于一处,以便操作人员无需查看整个系统结构即可进行审计。
运营检查清单
将操作检查清单视为可度量的指标,这样会更有效。在扩大范围之前,先记录一份最佳实践案例、一个故障实例以及回滚说明。
在功能结果旁记录执行时间以及令牌或查询成本。提前了解成本情况,可避免在系统从演示环境过渡到共享环境时出现意外账单。
将分块策略与检索策略分开。当质量指标发生变化时,修改其中一项不应迫使重新编写另一项。
在预算允许的情况下,使用测试数据而非真实的付费 API,在持续集成过程中添加用于检测关键路径的冒烟测试。
将配置信息与应用程序代码分开。环境文件、密钥存储和功能开关应集中存放,以便操作人员无需查看整个系统结构即可进行审计。
应将分块策略与检索策略分开。当质量指标发生变化时,修改其中一项不应强制重新编写另一项。
在升级该技术栈之前,先冻结版本,为关键流程保存标准转录文本,并明确回滚步骤。共享环境需要设置速率限制、租户检查机制,以及明确的密钥轮换负责人。与其追求花哨的一次性演示,不如注重扎实的可靠性。
针对715e311303f5的批处理说明:不要将提供商密钥放入代码仓库,为每个会话设置令牌上限,并将转录文本存储在评估用示例文件旁边,以便后续模型更换时保持可比性。