前言

作为一名产品经理,我一直想搭建一个属于自己的个人数字分身——它能100%基于我的真实经历、项目经验和个人观点回答问题,既是我个人品牌的线上延伸载体,也能让访客、面试官、同行通过对话快速、精准地了解我。

整个项目从需求落地到线上可用,我全程采用「我说AI干」的模式完成开发,最终用RAG技术栈实现了完整的个人数字分身(勉强能用版)。但整个过程也让我深刻印证了一句话:RAG上线容易优化难,生产级别更难。本文就以完整的项目复盘大纲,从产品经理的视角,拆解从0到1的全流程,重点梳理检索优化、选型决策中的核心踩坑实录与解决方案,最终形成可复用的落地方法论。

一、确定需求,实现功能,面向场景

核心需求定位

打造可信赖的个人数字镜像,核心原则是「所有回答必须100%基于我的真实信息,绝对禁止编造、幻觉」,数字分身的人设、回答风格必须和我本人完全一致。

核心面向场景与用户

  1. 个人品牌展示场景:核心用户是面试官、行业同行、商务合作方,需求是快速、精准地了解我的工作经历、项目经验、产品能力与职业观点;

  2. 精准问答场景:针对我的职业经历、项目细节的深度提问,必须给出符合我本人表述的、无偏差的回答;

  3. 日常互动场景:针对非核心的闲聊问题,可轻松诙谐互动,同时自然引导对话回到我的个人经历相关内容,不偏离数字分身的核心定位。

核心体验指标与功能边界

我没有盲目堆砌功能,而是围绕核心体验指标定义了必须实现的功能:

核心体验指标

对应实现功能

核心问题回答准确率100%

基于Notion知识库的RAG检索能力,唯一事实来源锁定

幻觉率趋近于0

全链路防幻觉机制,从检索到生成全流程管控编造内容

对话响应延迟<1s

轻量化检索与生成链路,无冗余环节

对话上下文连贯

多轮对话记忆能力,支持上下文连贯对话

问题适配性强

用户意图识别,区分「核心事实问题」「观点类问题」「闲聊问题」,匹配不同回答策略

二、资源盘点与选型决策

个人项目的核心选型原则是场景匹配优先、ROI最大化、无额外运维负担,所有选型都围绕「个人数字分身」这个垂直场景,拒绝盲目跟风技术热点,最终选型如下:

资源类型

最终选型

产品视角选型逻辑

服务器

阿里云轻量应用服务器(CentOS系统)

个人长期使用的服务器,配置完全满足需求,网络稳定,无需额外采购,无新增成本

向量数据库

FAISS

轻量本地向量库,无需额外部署服务/中间件,Python直接集成,零运维成本;对于我的几十条知识库内容,单机检索性能完全过剩,毫秒级响应,完美适配个人项目

生成大模型

阿里百炼Qwen3.5-Plus

通义千问最新旗舰轻量API模型,中文语义理解、指令遵循能力极强,幻觉控制优秀,能严格执行「只基于上下文回答」的核心规则;API调用稳定,个人免费额度完全覆盖使用需求,百万Token仅0.8元,极致性价比

向量模型

阿里百炼qwen3-vl-embedding

同系列多模态向量模型,中文语义表征能力强,和生成模型适配性拉满,输出1536维向量完美适配FAISS,大幅提升语义匹配准确率

重排序模型

阿里百炼qwen3-vl-rerank

对检索结果做二次精排,过滤低相关内容,从根源上减少大模型幻觉,提升检索精准度

知识库

Notion

我的个人工作经历、项目经验、日常思考全部沉淀在Notion中,可通过API直接拉取,无需额外做数据迁移,内容更新同步成本为0

技术栈

Python3.6+FastAPI+轻量前端对话页

FastAPI轻量化高性能,前端页面极简,直接对接后端接口即可使用,开发落地成本极低,符合「我说AI干」的模式

三、数据准备:产品视角的知识库治理

RAG的效果上限,从一开始就由知识库的数据质量决定。这一步我没有做简单的文本清洗,而是从产品视角,做了全流程的知识库治理,确保检索的基础盘足够扎实。

  1. 内容结构化与标准化:把Notion中无结构的长文本、流水账式的内容,按「项目/经历/观点」做原子化拆分,制定了统一的内容规范:所有工作经历、项目经验,都按「时间-公司-项目-核心职责-核心成果」的结构梳理,确保每一条文本都是一个完整、独立的语义单元,避免语义断裂。

  2. 内容去重与降噪:去掉空行、无意义的感慨、重复内容、无效信息,确保每一条文本都是有效信息,避免无效内容干扰向量表征,最终筛选出64条核心有效内容。

  3. 语义分块规则设计:没有照搬网上通用的「1000字符分块」,而是基于我的内容特点,设计了匹配的分块规则:单条文本控制在500字符以内,确保不拆分核心信息,同时适配Embedding模型的最优输入长度,避免单条文本过长导致向量表征模糊。

  4. 测试问题集构建:提前构建了3类核心测试问题集,用于后续的效果验证与优化:

    1. 核心事实问题集:「我的工作经历有哪些?」「我做过的教育科技SaaS项目从0到1的经历?」

    2. 边界防幻觉问题集:「你做过AI客服系统吗?」「你在医疗领域有哪些项目经历?」

    3. 泛化闲聊问题集:「你好」「你对产品经理这个岗位的看法?」

四、开发落地

整个开发过程,我没有写一行代码,全程采用「我说AI干」的模式完成,核心是产品经理对架构、核心逻辑、体验规则的把控,落地路径如下:

1、架构定义与模块拆解

我先定义了数字分身的核心架构,拆解为6个核心模块,明确每个模块的产品逻辑与核心目标:

用户提问→敏感词与意图识别→问题标准化改写→混合检索召回→Rerank精排过滤→大模型生成回答→幻觉校验→结果返回&对话记忆保存

2、核心规则与约束定义

针对每个模块,我都明确了不可突破的产品规则,比如防幻觉的三重约束、检索的召回率要求、生成的人设规范,让AI严格按照我的规则写代码,避免出现偏离核心目标的功能。

3、分模块落地与验证

按「知识库同步→向量检索→对话生成→接口封装」的顺序,分模块落地,每个模块完成后,我都用测试问题集做验证,确保符合产品预期,再进入下一个模块,避免全量开发完后出现核心问题无法返工。

4、部署上线与可用性验证

最终完成服务部署后,先做全链路的可用性验证,确保健康检查、知识库同步、对话接口全部正常,再用核心测试问题集做首轮效果验证。

五、结果调试与优化

这是整个项目中耗时最长、最核心的环节,也是「RAG上线容易优化难」的核心体现。所有的坑都围绕「检索效果」「回答准确率」「用户体验」展开,我完全从产品经理的视角,拆解每个问题的现象、根因、解决方案与避坑指南,全程不涉及代码开发细节。

坑1:语义检索召回率不足,核心工作经历完全找不到

用户问「你的工作经历有哪些?」「你做过的SaaS项目经历」这类核心问题,数字分身要么说没有相关信息,要么答非所问,完全没命中知识库的核心内容,直接丧失了数字分身的核心价值。

根因分析

  1. 数据分块策略完全错误:一开始把大段的工作经历合并成了超长文本,单条文本超过了Embedding模型的最优输入长度,导致向量表征模糊,语义匹配完全失准;

  2. 检索Top-K设置不合理:一开始只取Top3的检索结果,核心信息被拆分到了不同的文本块里,Top3根本覆盖不全,直接导致核心信息漏召回;

  3. 没有做问题标准化处理,用户的口语化提问和知识库的书面化内容语义匹配度极低,检索完全失准。

解决方案

  1. 重新设计分块规则:按「项目/经历模块」做原子化拆分,单条文本控制在500字符以内,确保每一个文本块都是一个完整的语义单元,绝对不拆分核心信息;

  2. 优化检索链路设计:先召回Top10的候选结果,给后续重排序留足空间,避免核心信息漏召回,再通过精排过滤无效内容,兼顾召回率和精准度;

  3. 新增用户问题改写环节:先把用户的口语化、模糊化提问,改写成和知识库内容匹配的标准化问题,再做语义检索,大幅提升语义匹配度。

避坑指南

RAG的召回是第一道关,召回都没命中,后续生成再强也没用。一定要先基于你的知识库内容,设计匹配的分块规则,而不是照搬网上的通用分块长度,否则从根源上就锁死了检索效果的上限。

坑2:检索精准度不足,上下文冗余导致严重幻觉,数字分身「人设崩塌」

用户问边界问题,比如「你做过哪些AI项目?」,知识库中有单独的「AI分析推荐」和「智慧校园项目」两条无关内容,但数字分身自主拼接,编造出「教育平台加了智能推荐和数据分析功能」的虚假经历,直接让数字分身的可信度完全崩塌。

根因分析

  1. 检索结果没有做过滤,把不相关的、碎片化的内容全部传给了大模型,大模型为了生成通顺的回答,自主做了关键词拼接和语义脑补;

  2. 只靠单一语义检索,没有做相关性二次校验,很多低相关的内容混进了上下文,给大模型提供了脑补的素材;

  3. 只靠生成环节的提示词约束,没有和检索策略做配合,根本挡不住大模型的脑补,防幻觉完全失控。

解决方案

  1. 新增Rerank重排序环节:用qwen3-vl-rerank模型对Top10的检索结果做二次精排,只保留Top3最高相关性的内容,过滤掉所有低相关的碎片化信息,从根源上减少大模型脑补的素材;

  2. 设计全链路防幻觉产品体系:

检索前:预设禁止拼接的关键词规则,提前过滤高风险内容;
检索中:只给大模型传递精排后的高相关内容,禁止无关内容进入上下文;
生成后:新增幻觉校验环节,对生成结果做关键词匹配校验,命中高风险规则直接替换为澄清回复;

强化人设约束的系统提示词,明确「唯一事实来源是检索到的上下文,禁止编造、拼接上下文没有的信息」,和检索策略形成双重约束。

避坑指南

如果是个人数字分身、企业知识库这类对事实准确性要求较高的场景(100%几乎不可能),防幻觉的核心在检索环节,而不是生成环节。你给大模型的上下文越干净、越精准,幻觉率就越低,不要指望靠提示词就能解决所有幻觉问题。

坑3:向量库选型的误区,盲目跟风技术热点,反而拖垮了项目落地节奏

一开始看网上的教程,跟风选了热门的分布式向量数据库Milvus,结果光是部署、运维就花了大量时间,个人服务器根本扛不住资源消耗,还出现了数据同步异常、索引构建失败的问题,项目迟迟无法落地,核心的检索效果也没任何提升。

根因分析

选型完全脱离了业务场景,没有考虑「个人项目」的核心约束:单节点部署、无专职运维、数据量小(只有几十到几百条文本)、请求量极低。分布式向量数据库的优势是海量数据、高并发,在我的场景里完全用不上,反而带来了极高的运维成本和落地门槛。

解决方案

果断放弃分布式向量库,选型FAISS本地轻量向量库,核心选型逻辑如下:

  1. 完全匹配场景:我的知识库只有几十条核心内容,FAISS的单机检索性能完全过剩,毫秒级响应,完全满足个人数字分身的需求;

  2. 零运维成本:无需额外部署服务、配置集群,替换后几分钟就完成了上线,完全不用操心运维问题(就算有也问AI);

  3. 效果可控:支持多种索引类型,语义检索效果完全不输商用向量库,对于小体量数据,检索准确率甚至更高;

  4. 无额外成本:完全开源免费,没有商用付费门槛,完美适配个人项目。

避坑指南

向量库选型没有最好的,只有最匹配场景的。个人项目、小体量知识库、低并发的场景,FAISS这类轻量本地向量库是最优解,完全没必要跟风上分布式向量库,只会给自己增加不必要的落地难度,毕竟我只是想「做一个可用的数字分身」。

坑4:大模型选型的误区,迷信「模型越大效果越好」,结果ROI极低,体验反而更差

一开始觉得要做就做最好的,选了开源的397B超大参数模型,结果发现个人服务器根本跑不动,就算用API调用,成本也极高,延迟还大,用户提问要等好几秒才回复,体验极差。更关键的是,超大模型在我的个人数字分身场景里,准确率、幻觉控制,反而不如轻量模型。

根因分析

完全脱离了场景需求选模型,个人数字分身的核心需求是「严格遵循指令、精准基于上下文回答、低延迟、低成本」,而不是通用能力、复杂推理能力。超大模型的优势是复杂推理、多轮创作,在我的场景里完全用不上,反而因为参数太大,指令遵循的不可控性更高,更容易脑补编造内容,同时带来了极高的成本和延迟。

解决方案

放弃超大模型,选型阿里百炼Qwen3.5-Plus系列轻量API模型,核心原因如下:

  1. 完美匹配场景需求:3.5系列的指令遵循能力、幻觉控制能力,在中文场景下水平较高,能严格执行「只基于上下文回答、禁止编造」的核心规则,完全满足数字分身的人设要求;

  2. 极致的性价比:百万Token仅8元,个人数字分身的日常调用,月成本不到1块钱,完全可以忽略不计;

  3. 低延迟高可用:API调用毫秒级响应,用户提问无感知等待,对话体验流畅,同时有大厂的保障,不用自己维护模型部署;

  4. 配套生态完整:同系列的向量模型、重排序模型可以无缝搭配,形成完整的RAG链路,检索和生成的适配性拉满,大幅提升整体效果。

为什么不用大模型,优先选择轻量模型?

  1. 场景匹配度优先:RAG场景的核心是「听话」,而不是「聪明」。轻量模型在指令遵循、上下文精准还原上,完全不输超大模型,甚至因为参数更小,可控性更强,幻觉率更低,更适合垂直场景;

  2. ROI天差地别:超大模型的部署、调用成本是轻量模型的几十上百倍,而在个人数字分身这类垂直场景,效果提升几乎为0,完全是资源浪费;

  3. 落地难度极低:轻量模型的API调用,不用考虑显存、部署、运维的问题,个人开发者、产品经理也能快速上手,把精力放在优化检索效果、打磨用户体验上,而不是模型部署上;

  4. 迭代速度更快:轻量模型的更新迭代速度更快,新的特性、优化能快速用上,而超大模型的迭代、微调门槛极高,个人项目根本玩不转。

避坑指南

RAG项目选模型,不要迷信参数规模,能严格执行你的指令、精准基于上下文回答的模型,才是最适合的模型。垂直场景、个人项目,轻量模型的性价比、可控性、落地难度,都全面碾压超大模型。

坑5:检索策略单一,泛化问题和精准问题无法兼顾,用户体验断层

精准匹配的问题,比如「你2023年在哪个公司工作」,语义检索找不到;泛化类的问题,比如「你对产品经理这个岗位的看法」,检索结果又完全不相关,用户体验两极分化,要么答得特别准,要么完全答不上。

根因分析

只靠单一的语义检索,没有做多策略的检索融合。语义检索擅长泛化问题,但对精准关键词、短文本的匹配度很差;关键词检索擅长精准匹配,但不擅长语义泛化,两者必须结合,才能覆盖所有用户提问场景。

解决方案

设计「语义检索为主,关键词检索兜底」的混合检索策略,同时新增PageIndex树状检索的降级方案:

  1. 主链路:语义检索+Rerank重排序,处理用户的泛化类、长文本问题;

  2. 兜底链路:当语义检索的相似度低于阈值时,自动触发关键词检索和PageIndex树状检索,确保精准关键词的问题能命中核心内容;

  3. 意图识别前置:先识别用户的问题类型,精准事实类问题优先用关键词匹配,观点类、泛化类问题优先用语义检索,针对性匹配检索策略。

避坑指南

没有万能的检索策略,不同类型的问题,需要匹配不同的检索方式。一定要先基于你的测试问题集,拆分问题类型,设计对应的检索策略,而不是靠单一检索打天下。

坑6:数据质量不达标,检索效果的天花板从一开始就被锁死

不管怎么优化检索策略、换模型,核心问题的回答准确率始终上不去,要么漏信息,要么答不全。

根因分析

RAG是典型的「垃圾进,垃圾出」场景,效果上限永远由知识库的数据质量决定。一开始我的知识库内容,很多是大段的流水账、无意义的感慨、信息重复,没有结构化的核心信息,Embedding模型根本无法提取有效的语义特征,检索自然无法命中。

解决方案

重新做知识库的内容治理,制定标准化的内容规范:

  1. 核心信息结构化:所有工作经历、项目经验,都按统一结构梳理,确保每一条内容都有明确的核心语义;

  2. 内容去重降噪:去掉所有无意义的内容,确保每一条文本都是有效信息;

  3. 语义一致性:所有内容的表述风格统一,避免口语化和书面化混杂,提升和用户提问的语义匹配度;

  4. 测试集验证:用提前准备的测试问题集,逐条验证内容的召回率,缺什么补什么,确保核心问题都有对应的内容支撑。

避坑指南

你在数据准备上偷的懒,都会在检索效果上还给你。一定要先把知识库的数据质量做扎实,再去优化检索策略、换模型,否则都是本末倒置。

六、总结

整个项目从0到1落地,我最深的感悟就是:RAG上线容易优化难,生产级别更难

很多人觉得RAG就是「知识库+向量库+大模型」的简单拼接,搭起来确实很容易,但真正要做一个生产可用、体验达标、幻觉可控的RAG应用,核心难点从来不是技术搭建,而是围绕场景的细节优化、全链路的体验把控,尤其是检索环节的打磨,直接决定了整个应用的生死。

作为产品经理,在整个项目落地过程中,我也总结了几个核心结论:

  1. 场景优先,拒绝技术堆砌:所有选型、所有优化,都要围绕你的核心场景和用户需求,不要盲目跟风技术热点。比如个人数字分身这类垂直场景,轻量、可控、低成本的方案,永远比复杂、高大上的技术方案更合适。

  2. RAG的核心是「控」,不是「放」:对于对事实准确性要求极高的场景,核心是控制幻觉、控制回答边界、控制人设,而不是让大模型自由发挥。全链路的约束体系,比大模型的创作能力重要100倍。

  3. 数据是基础盘,检索是生命线:RAG的效果上限由数据质量决定,下限由检索效果决定。80%的效果问题,都可以通过优化数据质量、检索策略解决,不要一遇到问题就想着换更大的模型。

  4. 产品经理做AI项目,核心是定义规则与体验:不用会写代码,不用懂算法,但必须清楚每个环节的产品逻辑、核心目标、体验边界,用清晰的规则让AI成为你的提效工具,而不是被技术牵着走。

最后,如果你也想搭建属于自己的个人数字分身,或者正在做RAG相关的项目,希望我的这篇复盘和避坑指南,能帮你少走弯路,真正落地一个可用、好用的RAG应用。

其实到现在,个人数字分身也没都弄好,还是会有幻觉,但好歹是勉强能用了。最近在弄OpenClaw,精力暂时放在养龙虾上面了,关于RAG和个人数字分身,后续再优化吧。后面还打算微调个小模型出来,但目前没场景,就一直没提上日程(挖坑😄)。

文章作者: JeffreyLiu🎯
版权声明: 本站所有文章除特别声明外,均采用 CC BY-NC-SA 4.0 许可协议。转载请注明来自 JeffreyLiu's Blog🎉
产品 AI
喜欢就支持一下吧