RAG开源之路:在解析与检索之间寻找你的第一性原理
最重要的不是你今天选择了什么项目,而是三年后你成为了什么样的人。
—— Naval Ravikant
真正的问题不在于机器能否思考,而在于人类是否愿意深度思考。
—— Alan Turing
序章:一个Java程序员在RAG路口的困惑
你的现状:
- Java开发,做传统业务管理系统 + RAG增强检索
- 有一个IDEA插件项目(PandaCoder),但觉得与RAG理解关联不大
- 想通过开源来深入理解RAG,而不是背八股文和空读源码
CTO的建议:
- RAG本质就两条路:①结构化→非结构化的解析 ②高质量检索
- 建议你维护公司的解析开源项目
你的困惑:
- "觉得差了点意思" —— 这种直觉非常重要
让我以Naval的投资人视角和图灵的科学家精神,来帮你剖析这个"差了点意思"背后的本质。
第一章:Naval的答案 —— 专长的复利陷阱
1.1 你的CTO说得对,但不完整
CTO说:RAG就是解析和检索
这就像说:
- "互联网就是前端和后端"
- "AI就是训练和推理"
- "创业就是产品和销售"
Naval会说:这是技术视角,不是价值视角。
技术视角:关注技术模块
价值视角:关注用户痛点
创造视角:关注未被满足的需求你的CTO给你指了一条安全但狭窄的路:
- ✅ 安全:在公司项目框架内,风险可控
- ❌ 狭窄:只聚焦"解析"这一个点,失去了全局理解
Naval的专长公式:
独特价值 = 技能A × 技能B × 技能C如果你只做解析:
你的价值 = 文档解析专家但如果你理解全链路:
你的价值 = 文档解析 × 向量检索 × 提示工程 × 系统架构
↓
RAG全栈工程师(稀缺10倍)
1.2 "差了点意思"的本质 —— 杠杆感缺失
你为什么觉得"差了点意思"?
让我们用Naval的框架分析:
| 维度 | 公司解析项目 | 你内心的渴望 |
|---|---|---|
| 自主性 | 低(被分配任务) | 高(主导方向) |
| 完整性 | 低(只做解析) | 高(理解全链路) |
| 杠杆感 | 中(开源有影响力) | 高(创造新东西) |
| 学习曲线 | 线性(深入一个点) | 指数(触类旁通) |
| 长期价值 | 中(单点专家) | 高(系统思维者) |
Naval说:
"当一件事情让你觉得'差了点意思'时,通常是因为它缺乏这三个要素之一:自主性、完整性、杠杆感。"
1.3 Naval会给你的建议
1. 接受公司项目,但重新定义你的角色
不要把自己定位为"解析模块的维护者",而是:
你的新身份:RAG数据链路的架构师具体操作:
- ✅ 不仅维护解析,还要理解它在整个RAG流程中的位置
- ✅ 主动思考:什么样的解析结果对检索最友好?
- ✅ 与检索团队深度交流:解析输出如何影响检索质量?
- ✅ 写文档、写博客,用教学倒逼理解
2. 在公司项目之外,建立你的"杠杆项目"
| 项目类型 | 时间占比 | 目标 |
|---|---|---|
| 公司项目 | 60% | 深度 + 收入 + 团队经验 |
| 全链路实验 | 30% | 广度 + 系统理解 |
| 开源创造 | 10% | 影响力 + 探索未知 |
你的"杠杆项目"可以是:
方案A:RAG Playground
- 一个完整的RAG实验平台
- 从文档上传 → 解析 → 向量化 → 检索 → 生成
- 目标:深度理解每个环节的trade-off
方案B:RAG Debugger
- 一个可视化调试工具
- 展示每个环节的中间结果
- 目标:发现优化空间,形成洞察
方案C:PandaCoder + RAG
- 在你的IDEA插件中集成RAG能力
- 比如:代码搜索、API文档问答
- 目标:将两个兴趣点结合
3. 用Naval的"长期主义"重新看待选择
Naval最著名的一句话:
"玩长期游戏,和长期的人一起玩。所有的回报,无论是财富、关系还是知识,都来自复利。"

复利的关键是:方向 × 时间
| 选择 | 3年后的你 | 10年后的你 |
|---|---|---|
| 只做解析 | 文档解析专家 | 可能被AI替代的专家 |
| 理解全链路 | RAG工程师 | AI基础设施架构师 |
| 创造新工具 | 开源作者 | 技术创业者/独立开发者 |
Naval的建议:
不要优化眼前的舒适度,要优化三年后的可选择权。第二章:图灵的答案 —— 好奇心是唯一的指南针
2.1 图灵不会给你"职业建议"
如果你问图灵:"我应该做解析还是检索?"
他会反问你:
"你真正好奇的是什么?是解析PDF的技术细节,还是机器如何'理解'文档的本质?"
图灵一生都在追问本质问题:
- 不是"如何造计算机",而是"什么是可计算的?"
- 不是"如何识别密码",而是"智能的本质是什么?"
你的本质问题应该是:
不是"我应该做哪个开源项目?"
而是"RAG到底在解决什么根本问题?我对哪一层感兴趣?"2.2 RAG的三层本质
让我们用图灵式的第一性原理思维,拆解RAG:
第一层:数据层(你CTO说的"解析")
问题:如何让机器"读懂"人类的文档?
挑战:PDF有版式,表格有结构,图片有语义
本质:从非结构化到结构化的信息提取有趣的问题:
- 什么是"读懂"?OCR识别文字就够了吗?
- 表格的结构重要还是内容重要?
- 如何保留文档的上下文关系?
第二层:知识层(你CTO说的"检索")
问题:如何在海量信息中找到相关内容?
挑战:语义相似度、相关性排序、多跳推理
本质:知识的表征与匹配有趣的问题:
- 什么是"相关"?语义相似就够了吗?
- 为什么向量检索有时不如关键词搜索?
- 如何处理"我不知道我要找什么"的场景?
第三层:智能层(常被忽略)
问题:如何让机器生成"有价值"的回答?
挑战:幻觉、事实性、可解释性
本质:知识的推理与生成有趣的问题:
- 检索到的信息如何影响LLM的输出?
- 如何让AI知道"我不知道"?
- 如何让用户信任AI的回答?

2.3 图灵会问你的三个问题
问题1:你对哪一层本质上好奇?
如果你对数据层好奇:
→ 研究多模态解析(文本+图片+表格)
→ 研究增量解析(文档更新如何快速处理)
→ 研究语义保留(如何不丢失原文的逻辑关系)
如果你对知识层好奇:
→ 研究混合检索(向量+关键词+图谱)
→ 研究重排序(如何让最相关的内容排在前面)
→ 研究多跳推理(如何处理复杂问题)
如果你对智能层好奇:
→ 研究提示工程(如何引导LLM更好使用检索结果)
→ 研究事实性评估(如何减少幻觉)
→ 研究可解释性(如何追溯答案来源)问题2:你的好奇心边界在哪里?
图灵说过:
"我们不应该害怕走进未知的领域。恰恰相反,未知才是发现的源泉。"

做个思想实验:
场景1:给你一个完美的解析库(解析任何文档100%准确)
→ 你会兴奋吗?还是觉得"少了点挑战"?
场景2:给你一个完美的检索系统(总能找到最相关的内容)
→ 你会满足吗?还是会想"如果加上推理会怎样"?
场景3:让你从零设计一个RAG系统
→ 你最想花时间研究哪一部分?
你的答案就是你的真实兴趣所在。

问题3:PandaCoder"没意思"是假象还是真相?
图灵会说:
"一个好的问题比一百个答案更有价值。"
重新审视PandaCoder:
你说"PandaCoder只是字符串匹配,跟RAG没关系"。
但图灵会问:
PandaCoder的本质是什么?
→ 理解开发者的意图
→ 自动生成代码
→ 提升开发效率
RAG的本质是什么?
→ 理解用户的问题
→ 检索相关信息
→ 生成有价值的答案
它们在本质上是同构的!PandaCoder可以成为你的RAG实验场:
| 传统插件功能 | RAG增强版本 | 技术挑战 |
|---|---|---|
| 代码模板生成 | 基于项目历史的智能生成 | 代码语义检索 |
| API文档查询 | 自然语言问答式查询 | 文档解析+检索 |
| 代码搜索 | 语义级代码搜索 | 代码向量化 |
| 错误提示 | 上下文感知的解决方案 | 多模态检索(代码+文档) |
这个项目能让你:
- ✅ 理解RAG全链路(解析+检索+生成)
- ✅ 有真实用户反馈(你自己就是用户)
- ✅ 保持创造的乐趣(不是维护别人的代码)
- ✅ 有展示价值(插件的Star数是可见的影响力)
2.4 图灵式的行动方案
图灵不相信"完美规划",他相信"实验驱动"。
实验1:RAG全链路原型(2周)
# 目标:用最简单的方式跑通RAG全流程
# 不求完美,只求理解
def simple_rag_experiment():
# 第1步:解析(用现成工具)
docs = parse_documents("your_docs/")
# 第2步:向量化(用OpenAI/本地模型)
vectors = embed_documents(docs)
# 第3步:检索(用FAISS)
results = vector_search(query, vectors)
# 第4步:生成(用LLM)
answer = llm_generate(query, results)
# 关键:在每一步打印中间结果,观察问题实验收获:
- 你会发现哪个环节最影响最终效果
- 你会知道你对哪个环节最感兴趣
- 你会产生新的问题(这才是学习的开始)
实验2:解析质量对检索的影响(1周)
# 问题:不同的解析方式如何影响检索质量?
def compare_parsing_methods():
# 方法1:简单文本提取
docs_v1 = simple_text_extraction(pdf)
# 方法2:保留结构信息
docs_v2 = structured_extraction(pdf)
# 方法3:语义分块
docs_v3 = semantic_chunking(pdf)
# 对比检索效果
for query in test_queries:
compare_results(query, docs_v1, docs_v2, docs_v3)实验收获:
- 你会深刻理解"解析"在RAG中的价值
- 你会形成自己的最佳实践
- 你可以写一篇高质量博客(这就是你的技术资产)
实验3:PandaCoder + RAG MVP(2周)
目标:在你的插件中加入一个RAG功能
功能:自然语言搜索项目中的代码
- 输入:"如何处理用户登录"
- 输出:相关的代码片段 + 简短解释
技术路径:
1. 索引:在插件启动时索引当前项目的代码
2. 检索:用户输入问题 → 向量检索相关代码
3. 生成:用LLM生成解释
难点:
- 代码的分块策略(函数级?类级?文件级?)
- 代码的向量化(用代码专用的embedding模型)
- 如何在IDE中优雅展示结果实验收获:
- 完整的RAG实践经验
- 解决真实问题(提升自己的开发效率)
- 有产品化的成果(可以开源、可以展示)
第三章:融合方案 —— Naval的长期主义 + 图灵的实验精神
3.1 你的真实处境
让我们诚实地面对现实:
限制条件:
- 你有全职工作(时间有限)
- 公司有期望(需要交付)
- 你想深入RAG(需要系统学习)
- 你喜欢开源(需要自主创造)
Naval说:
"约束是创造力的催化剂。在约束中寻找最优解,才是真正的智慧。"

图灵说:
"不要等到条件完美才开始。从你能做的最小实验开始。"

3.2 三轨并行策略
轨道1:公司项目(60%时间)—— 深度换收入
目标:不只是完成任务,而是成为专家
具体行动:
1. 重新定义角色(不是维护者,是架构师)
- 主动思考:解析的下一个技术挑战是什么?
- 主动沟通:与检索团队深度交流
- 主动学习:研究业界最佳实践
2. 超出期望地交付
- 不只写代码,写设计文档
- 不只修bug,写技术博客
- 不只完成功能,思考系统架构
3. 建立技术资产
- 每个PR都是你的作品集
- 每个设计文档都是你的思考证明
- 每篇博客都是你的影响力放大器Naval的视角:
- 这是你的"专长深度"来源
- 公司付你工资,你积累技术资产
- 这是一场公平的交易,但要主动要结果最大化
轨道2:全链路实验(30%时间)—— 广度换理解
目标:理解RAG全流程,形成系统思维
具体行动:
1. 每周一个小实验(2-3小时)
- Week 1: 跑通基础RAG流程
- Week 2: 对比不同的解析策略
- Week 3: 对比不同的检索方式
- Week 4: 对比不同的生成策略
2. 实验驱动学习
- 不要先看一堆教程
- 先做实验,遇到问题再学习
- 每个实验写一篇笔记
3. 建立自己的RAG知识库
- 用Notion/Obsidian记录
- 形成自己的最佳实践文档
- 这就是你的技术资产图灵的视角:
- 好奇心需要实验来满足
- 实验失败也有价值(你知道了什么不work)
- 积累的实验笔记是你的真实理解
轨道3:创造项目(10%时间)—— 杠杆换影响力
目标:创造属于你的作品,建立个人品牌
选择方向(三选一):
方向A:RAG Debugger(偏工具)
- 可视化RAG的每个环节
- 帮助开发者快速定位问题
- 技术栈:Python + Web前端
- 开源潜力:⭐⭐⭐⭐⭐
方向B:PandaCoder + RAG(偏产品)
- 在插件中集成RAG能力
- 解决真实的开发效率问题
- 技术栈:Java/Kotlin + RAG
- 开源潜力:⭐⭐⭐⭐
方向C:RAG学习资源(偏内容)
- 写RAG实战系列博客
- 录制视频教程
- 开源示例代码
- 技术栈:写作 + 代码
- 开源潜力:⭐⭐⭐Naval + 图灵的共同建议:
不要追求完美,追求"有趣且有用"
- 有趣:你愿意长期投入
- 有用:别人愿意使用/传播3.3 时间分配的艺术
周一到周五(工作日)
白天(8小时):公司项目
- 高质量完成工作
- 深度思考技术问题
- 与团队充分沟通
晚上(2小时):
- 1小时:全链路实验
- 1小时:写笔记/写博客
关键:不要贪多,保持可持续周末(选一天)
上午(3小时):创造项目
- 集中时间写代码
- 推进核心功能
下午(2小时):学习充电
- 看论文/技术文章
- 学习新工具
- 更新知识库
晚上:休息、运动、社交
(健康和快乐是长期主义的基础)Naval的时间观:
"不要用时间的长度来衡量价值,要用时间的质量。一小时的深度思考,胜过一周的机械劳动。"

实践建议:
- ✅ 保护你的深度工作时间(关掉通知)
- ✅ 每周至少有一个3小时的完整时间块
- ✅ 不要在碎片时间学习新技术(效率低)
- ✅ 可以在碎片时间:看技术文章、回复issue、思考问题
3.4 里程碑设计
Naval说:"不要设定结果目标,要设定系统目标。"

坏的目标:
- "我要在6个月内成为RAG专家"(太模糊)
- "我要让开源项目获得1000个star"(不可控)
好的目标:
Q1目标(接下来3个月):
✅ 完成公司解析项目的3个核心功能
✅ 完成12个RAG实验(每周1个)
✅ 发布PandaCoder的RAG MVP版本(或其他创造项目)
✅ 写12篇RAG技术笔记
✅ 在社区发表3篇技术博客
Q2目标(3-6个月):
✅ 成为公司解析项目的主要contributor
✅ 完成RAG全链路的深度理解
✅ 开源项目获得第一批用户(不设具体数字)
✅ 建立个人技术博客的读者群
✅ 在公司或社区做一次技术分享
Q3-Q4目标(6-12个月):
✅ 在RAG某个细分领域建立专长
✅ 开源项目在某个场景下被采用
✅ 通过技术影响力获得新机会(工作offer/咨询/合作)
✅ 开始探索商业化可能(如技术咨询、付费课程)关键指标(每月Review):
| 维度 | 指标 | 目标 |
|---|---|---|
| 深度 | 核心技术贡献 | 至少1个高质量PR |
| 广度 | 完成的实验数 | 4-5个 |
| 创造 | 开源项目进展 | 每月至少1个可见功能 |
| 影响力 | 技术内容输出 | 2-4篇笔记/博客 |
| 健康度 | 每周运动次数 | 至少2次 |
第四章:答案在你心中 —— 倾听内在的声音
4.1 重新审视"差了点意思"
你说CTO的建议"差了点意思"。
Naval会问:差在哪里?
我猜测是这些:
差在自主性:
- CTO的建议是"维护",不是"创造"
- 你想要的是"主导",不是"执行"
差在完整性:
- 只做解析,看不到全貌
- 你想理解整个系统,不是一个模块
差在探索性:
- 维护已有项目,创新空间有限
- 你想探索未知,不是优化已知
差在掌控感:
- 公司项目有太多限制
- 你想要100%控制至少一个项目
如果我猜对了,答案很明确:
接受CTO的建议(这是你的"深度"来源)
+
同时启动自己的项目(这是你的"自由"和"完整性")
=
两全其美4.2 图灵会说的话
如果图灵听到你的困惑,他可能会说:
"你知道吗?我在布莱切利庄园破译密码的时候,也只是负责'某一部分'。但我从未停止思考整个密码系统的本质。"
"不要让岗位定义你的思考边界。你可以在职责范围内工作,但在思考范围内自由。"
图灵式的建议:
分离两个层面:
工作层面:
- 认真完成解析项目(这是责任)
- 做到超出期望(这是专业)
思考层面:
- 持续思考RAG的本质(这是好奇心)
- 在业余时间实验验证(这是求知欲)
- 不断问"为什么"和"如果"(这是创造力)图灵的故事:
图灵在二战期间破译Enigma密码机,他的"正式工作"是设计Bombe机器。
但他从未停止思考:
- 什么是智能?
- 机器能否思考?
- 可计算的边界在哪里?
这些"与工作无关"的思考,最终诞生了:
- 图灵机(计算理论的基础)
- 图灵测试(人工智能的标准)
- 计算机科学的整个学科
教训:
- 工作可以约束你的行动
- 但永远无法约束你的思考
- 真正的创造,往往发生在"工作之外"的思考中
4.3 我的建议:一个现实的行动方案
基于你的情况,我建议:
短期(现在开始):双轨制
轨道1:公司项目 ← 你的"正式身份"
- 接受CTO的建议
- 认真维护解析项目
- 但重新定义你的目标:
不是"维护代码"
而是"理解解析在RAG中的角色"
轨道2:PandaCoder + RAG ← 你的"真实探索"
- 保持你的IDEA插件
- 加入RAG能力(从最简单的功能开始)
- 这是你100%掌控的项目
- 这是你探索全链路的实验场为什么选PandaCoder + RAG?
- 你已经有基础:插件框架已经搭好
- 你有真实用户:你自己就是第一用户
- 有明确场景:开发者的实际需求
- 有技术挑战:代码的语义理解、检索、生成
- 有展示价值:可以开源、可以写博客、可以演讲
具体的第一步(本周就可以开始):
Step 1: 在PandaCoder中添加一个简单的RAG功能
功能:项目代码的自然语言搜索
- 输入:"用户登录的逻辑在哪里"
- 输出:相关代码片段
技术实现:
1. 索引:项目启动时,遍历代码文件
2. 分块:按函数/类级别分块
3. 向量化:用OpenAI API或本地模型
4. 检索:用户输入 → 向量检索前5个结果
5. 展示:在IDE侧边栏展示
时间:周末2天,可以做出MVP
学到的:
- RAG全流程实践
- 代码语义化的挑战
- 检索质量的影响因素Step 2: 写一篇博客记录这个过程(1-2小时)
标题:《我在IDEA插件中集成RAG:从0到1的实践》
内容:
1. 动机:为什么要做这个
2. 技术选型:embedding模型、向量数据库
3. 核心挑战:代码的分块策略
4. 效果展示:demo视频
5. 经验教训:什么work,什么不work
6. 下一步:可以改进的方向
价值:
- 你对RAG有了全链路理解
- 你有了技术影响力(博客读者)
- 你有了作品集(github repo)
- 你发现了新的技术问题(可以继续深入)Step 3: 在公司项目中应用你的理解(持续)
现在你对RAG有了全链路的理解
你会用不同的视角看待解析工作:
以前的视角:
"我要把PDF转成文本"
现在的视角:
"我要保留文档的语义结构,让检索更准确"
"我要优化分块策略,让LLM更好理解上下文"
"我要设计良好的元数据,让重排序更有效"
这种视角的转变,会让你的工作质量提升一个档次
CTO会发现:"这个人不只是完成任务,他在思考系统"4.4 Naval的最终建议
Naval在《纳瓦尔宝典》中说:
"如果你在两个选择之间纠结,选那个短期更痛苦但长期回报更大的。"

应用到你的情况:
| 选项 | 短期 | 长期 |
|---|---|---|
| 只维护公司项目 | 轻松(有明确指导) | 风险(单点专家) |
| 只做自己的项目 | 困难(没有反馈) | 风险(脱离实际) |
| 双轨并行 | 累(时间紧张) | 回报(深度+广度) |
Naval会说:选双轨并行。
因为:
- 公司项目给你"深度"和"收入"
- 自己项目给你"广度"和"自由"
- 两者的交叉点,才是你的"独特价值"
Naval的公式:
专长 = 深度(公司项目)× 广度(实验) × 创造力(自己的项目)你不是在选择"做什么项目",而是在构建"复合型专长"。
第五章:行动清单 —— 从今天开始
5.1 本周行动(立即开始)
行动1:与CTO深度对话(1小时)
目标:不是"接受任务",而是"对齐目标"
问题清单:
1. 解析项目在整个RAG系统中的定位?
2. 当前最大的技术挑战是什么?
3. 我能否参与解析与检索的对接设计?
4. 能否定期与检索团队交流?
5. 有哪些创新空间?
表达你的想法:
"我想深入理解RAG全链路,这样能让我的解析工作更有价值"
"我计划在业余时间做一些RAG实验,可以反哺公司项目"
预期结果:
- CTO理解你的ambition
- 你获得更多自主空间
- 建立"不只是执行者"的形象行动2:启动PandaCoder + RAG实验(周末2天)
Day 1上午:技术调研
- 调研代码embedding模型(CodeBERT、GraphCodeBERT)
- 选择向量数据库(FAISS本地 or ChromaDB)
- 设计简单架构
Day 1下午:实现索引
- 遍历项目代码文件
- 简单分块(按文件或类)
- 向量化并存储
Day 2上午:实现检索
- 在插件中添加搜索框
- 用户输入 → 向量检索
- 展示前5个结果
Day 2下午:测试优化
- 用自己的项目测试
- 记录哪些work,哪些不work
- 规划下一步改进
产出:
- 一个可运行的MVP
- 一份实验笔记
- 一个github repo行动3:写第一篇RAG博客(2小时)
标题:《一个Java程序员的RAG探索:从困惑到行动》
大纲:
1. 我的困惑(真实记录你当前的思考)
2. RAG的本质(你的理解)
3. 我的选择(为什么做PandaCoder + RAG)
4. 第一个实验(技术细节 + demo)
5. 收获与计划(下一步要做什么)
发布渠道:
- 个人博客
- 掘金/CSDN
- 公司内部技术论坛5.2 本月行动
第1周:
- ✅ 与CTO对话
- ✅ 完成PandaCoder + RAG MVP
- ✅ 写第一篇博客
第2周:
- 完成公司项目的第一个任务(高质量交付)
- 做第一个RAG实验:对比不同的解析策略
- 写实验笔记
第3周:
- 继续公司项目
- 做第二个RAG实验:对比不同的检索方式
- 优化PandaCoder插件(根据使用反馈)
第4周:
- 继续公司项目
- 写一篇深度博客:《RAG中的数据解析:为什么它比你想象的重要》
- 做月度复盘(回顾目标、调整计划)
5.3 季度目标
Q1结束时(3个月后),你应该有:
深度维度:
- ✅ 在公司解析项目中贡献3-5个核心功能
- ✅ 成为团队中对RAG理解最深的人
- ✅ 主导至少1次技术方案设计
广度维度:
- ✅ 完成12个RAG实验(每周1个)
- ✅ 建立完整的RAG知识体系笔记
- ✅ 理解RAG的全链路trade-off
创造维度:
- ✅ PandaCoder + RAG上线可用版本
- ✅ 获得至少10个真实用户反馈
- ✅ 开源代码,star数不设目标但要持续推广
影响力维度:
- ✅ 写12篇RAG技术笔记
- ✅ 发布4-6篇高质量博客
- ✅ 在公司/社区做1次技术分享
如果你做到了这些,3个月后:
- 你会对RAG有真正的理解(不是纸上谈兵)
- 你会有可展示的作品(不是空谈)
- 你会有技术影响力(不是默默无闻)
- 你会有更多选择权(不是被动接受)
5.4 一年后的你
Naval说:
"一年后的你,会感谢今天开始行动的自己。"
如果你按照这个计划执行一年,你会成为:
RAG工程师的画像:
技术深度:
- 精通RAG数据处理(解析+清洗+分块)
- 理解RAG检索优化(向量+混合+重排序)
- 掌握RAG工程实践(性能+监控+调试)
技术广度:
- 完成50+个RAG实验
- 尝试过10+种技术组合
- 形成自己的最佳实践
创造力:
- 有1-2个被使用的开源项目
- 有自己的技术博客品牌
- 有技术社区的认可
职业资本:
- 在公司是RAG领域专家
- 在社区有技术影响力
- 有多种变现可能(跳槽/咨询/产品)具体的变化:
| 维度 | 现在 | 一年后 |
|---|---|---|
| 简历 | Java开发 | RAG全栈工程师 |
| 作品集 | 1个IDEA插件 | 解析项目+RAG工具+技术博客 |
| 影响力 | GitHub 小几百星 | GitHub 1000+ star |
| 收入 | 工资 | 工资 + 技术咨询/课程/打赏 |
| 可选择权 | 中等 | 高(有多个机会选择) |
| 内在状态 | 困惑 | 清晰且自信 |

尾声:Naval和图灵想对你说的话
Naval的话:
"你现在的困惑,是好事。"
"困惑说明你在思考,你不满足于现状。"
"大多数人从不困惑,因为他们从不思考。他们只是机械地执行,然后抱怨生活。"
"你已经走在了正确的路上。"
"接下来,不要纠结于'选择',而要关注'积累'。"
"每一天的高质量工作,都是复利的一部分。"
"三年后回头看,你会发现今天的困惑是最好的礼物。"
图灵的话:
"我一生都在问'为什么',这让我经历了无数困惑。"
"但正是这些困惑,推动我去探索、去实验、去创造。"
"不要害怕你的好奇心。"
"你想理解RAG的全貌,这个愿望本身就值得尊重。"
"不要让别人定义你的探索边界。"
"维护公司的解析项目,可以是你的工作。"
"但探索RAG的本质,应该是你的使命。"
"从一个小实验开始。今天就开始。"
"你会发现,行动本身就是答案。"
我的话:
你的困惑,我完全理解。
因为你不想成为"工具人",你想成为"创造者"。
你不想只是"执行任务",你想"理解本质"。
这种追求,非常珍贵。
但你也要理解:
创造力 = 约束 + 自由
约束(公司项目):给你深度、收入、团队经验
自由(个人项目):给你探索、完整性、掌控感
两者结合,才是完整的成长路径所以,我的建议是:
- 接受CTO的建议 —— 这是你的"约束"也是你的"深度"
- 启动自己的项目 —— 这是你的"自由"也是你的"探索"
- 保持长期主义 —— 不急于求成,享受过程
- 立即开始行动 —— 今天就做第一个实验
记住Naval的话:
"最重要的决定,不是你做什么项目,而是你成为什么样的人。"
记住图灵的话:
"不要停止提问。不要停止实验。不要停止创造。"
记住我的话:
"你的困惑已经是答案。"
"现在,把困惑转化为行动。"
附录:推荐资源
RAG基础:
- 论文:Retrieval-Augmented Generation for Knowledge-Intensive NLP Tasks
- 教程:LangChain官方文档 RAG部分
- 实践:跑通一个完整的RAG demo
开源项目参考:
- LlamaIndex:RAG框架
- Haystack:RAG pipeline
- Unstructured:文档解析(你公司应该也在参考)
Naval学习:
- 书:《纳瓦尔宝典》(Naval Ravikant)
- 播客:Naval on Joe Rogan
- Twitter:@naval(他的每条推文都值得深思)
图灵精神:
- 书:《图灵传》(Andrew Hodges)
- 论文:Computing Machinery and Intelligence
- 电影:《模仿游戏》(虽然有艺术加工,但精神准确)
技术成长:
最后,祝你:
- 在公司项目中找到深度
- 在个人项目中找到自由
- 在RAG领域找到你的位置
- 在三年后,成为你想成为的人
现在,关掉这篇文章,打开IDE,开始你的第一个RAG实验吧。🚀
本文首发于个人博客,转载请注明出处。
如果这篇文章对你有帮助,欢迎关注公众号「舒一笑的架构笔记」,一起在技术的道路上成长。
