目录
- Part 1:RAG 概念地图
- 1.1 一句话定义:RAG 在解决什么问题
- 1.2 数据→解析→切块:决定你"能不能检索到"
- 1.3 表示与索引:embedding / 向量库 / ANN
- 1.4 检索:BM25 / 向量 / Hybrid(RRF)
- 1.5 重排:两阶段检索的"质量杠杆"
- 1.6 生成:Prompt 结构、温度、幻觉与引用
- 1.7 评估与观测:为什么 RAG 绝对不能只"看起来对"
- 1.8 典型升级路径:从能用到好用
- Part 2:RAGFlow 快速跑通本地知识库(重点:跑通 + 坑)
- 2.1 30 分钟跑通:最短路径步骤
- 2.2 我遇见的坑
- Part 3:手搓一个最小 RAG(LlamaIndex)——把概念对齐到代码
- 3.1 技术栈说明
- 3.2 Indexing:从文档到向量库(indexer.py)
- 3.3 Query:从问题到答案 + 引用(query_service.py)
- 3.4 Query with Rerank
- Part 4:从 Demo 到 Production:你还回答的 10 个问题
- 最后:如果你只做三件事
- 引用
Part 1:RAG 概念地图
来自公开课: https://learn.deeplearning.ai/courses/retrieval-augmented-generation/information[1] 但按工程模块重组
另:上述课程由浅入深,学习体验也不错,非常建议花时间学一下
1.1 一句话定义:RAG 在解决什么问题
RAG = 检索(Retrieval) + 增强提示(Augmented Prompt) + 生成(Generation)。
它试图解决的核心矛盾是:
大模型的"参数知识"不够新/不够细/不够可信,而你又希望回答能引用到你自己的文档/数据。
RAG 的优势通常是:
- 可更新:更新知识不必重新训练模型
- 可引用:可以把"证据片段"塞给模型,降低幻觉
- 可解释:至少能告诉你答案来自哪些片段(哪怕仍可能错)
代价也很真实:
- 更慢:多了一段检索流程
- 更贵:更多 token、更复杂的 pipeline
- 更难评估:很多问题不是"答对/答错"那么简单
1.2 数据→解析→切块:决定你"能不能检索到"
你最终能检索到什么,往往不是模型决定的,而是切块策略决定的。
常见切块(chunking)策略
- 固定长度切块:简单粗暴,入门首选
- 按语义切块:基于段落/标题层级/语义边界(更适合结构化文档)
- 上下文感知切块:让 chunk "带上必要的标题/上文"以便模型理解
- Parent-Child / 结构化切块(课程里会提,但很多系统也实现了类似思路):
- child chunk 用于检索召回
- parent chunk(更大)用于最终注入上下文
我的入门建议:
- 先用固定 chunk 跑通,再升级
- 让 chunk “自包含”:看一眼能知道它在说什么(标题/小节名很关键)
- 避免把表格、代码块、清单切碎得太散(会导致召回到的片段没意义)
1.3 表示与索引:embedding / 向量库 / ANN
Embedding 在干什么
Embedding 把文本映射到向量空间,语义相近的文本向量距离更近。
你会听到两类指标:
- 相似度(cosine similarity)
- 距离(cosine distance / L2 等)
这不是玄学,它直接影响:
- 你的向量库怎么建索引
- top-k 的结果是什么
- 分数阈值如何设
为什么需要 ANN(Approximate Nearest Neighbor)
如果你有很多 chunk(比如几十万、百万级),精确 KNN 会慢。 ANN(例如 HNSW)用更快的近似搜索,把延迟控制在可用范围。
1.4 检索:BM25 / 向量 / Hybrid(RRF)
检索大致三派:
- BM25(关键词/稀疏检索)
- 优点:对专有名词、精确匹配、数字/术语很强
- 缺点:对同义改写不稳
- 向量检索(稠密检索)
- 优点:对语义相近/改写鲁棒
- 缺点:对"必须出现的关键词"不敏感(比如版本号、函数名)
- Hybrid(混合检索)把两者结合起来,常见做法:RRF(Reciprocal Rank Fusion)等。
Hybrid 为什么更稳?
因为它同时覆盖了两类失败模式:
- 向量检索召回了"语义像但关键不对"的片段
- BM25 召回了"关键词对但上下文不对"的片段
Hybrid 本质是在做"保险":只要其中一条腿没断,你就还有机会在下游(重排/生成)纠错。
我的入门建议: 如果我只有一天时间把系统从"经常答非所问"救回来,最可能有效的不是换模型,而是:(1)加 BM25/hybrid;(2)加 rerank;(3)改 chunk 让片段更自包含。
1.5 重排:两阶段检索的"质量杠杆"
经典结构是:
- 第一阶段:召回(recall)——尽量别漏
- 第二阶段:重排(rerank)——尽量别乱
Reranker(重排模型)会看 query 和候选 chunks,给更精细的相关性分数。 它对"语义相近但不回答问题"的负例特别有效。
1.6 生成:Prompt 结构、温度、幻觉与引用
在 RAG 里,Prompt 不是"写得像人话"就行,而要结构化地约束模型:
- 指令区:你是谁、你要做什么
- 上下文区:检索到的 chunks(最好带来源)
- 问题区:用户问题
- 规则区:如何引用、如何拒答、不知道就说不知道
温度等采样参数
- 温度高:更发散、更会编
- 温度低:更稳、更像"检索+归纳"
我的入门建议: 低温度 + 明确"引用证据/不足则拒答"。
1.7 评估与观测:为什么 RAG 绝对不能只"看起来对"
RAG 的问题在于: 模型可能"说得很像",但证据可能是错的/引用不一致/检索根本没召回到关键片段。
所以评估至少要拆成两层:
- 检索评估:有没有召回到正确证据(Recall@k 等)
- 生成评估:答案是否忠于证据、是否完整、是否存在幻觉
以及工程侧的观测:
- 每次 query 的检索结果、分数、最终注入上下文
- token 成本、延迟、失败率
- 线上问题可以 replay(回放)复现
1.8 典型升级路径:从能用到好用
- 固定 chunk + 向量检索跑通
- 加 metadata 过滤(按时间/分类/权限)
- 加 hybrid(BM25 + dense)
- 加 rerank
- query rewrite / HyDE(对短 query、口语 query 特别有效)
- 做评估集(golden set)+ 自动评测
- 做观测与回放(tracing + logs)
Part 2:RAGFlow 快速跑通本地知识库(重点:跑通 + 坑)
RAGFlow 更像"可视化的 RAG 工厂":
- 帮你把解析、切块、索引、检索、对话、引用串起来
- 很适合用于:快速试错、对比 chunk 策略、给团队演示、做小规模内部知识库
- 顺便提一下,ragflow 采用 elasticsearch (ES 同时支持稀疏检索和向量检索)作为检索引擎,是能支持 hybrid 检索的
我的建议定位:把 RAGFlow 当成"验证想法 + 找坑位"的工具,而不是一开始就当生产系统。
2.1 30 分钟跑通:最短路径步骤
下面是"最短路径"写法:不追求最优参数,追求先让系统跑通、能对话、能看到引用。 另外网上有非常多的 ragflow 视频教程,快速上手推荐参看 https://www.bilibili.com/video/BV1VBsFe5E9b/?vd_source=e9c10f97d409faf1f2853fda32ac3264[2]
Step 1:启动 RAGFlow(按官方方式)
- 跟随官方文档启动(用
$ docker compose -f docker-compose.yml up -d方式启动即可) - 启动时服务默认运行在80 端口,在浏览器输入
http://localhost即可进入 Web UI,注册后即可登入。 - 进入
http://localhost/user-setting/model页面设置默认模型。
- 设置 LLM 模型 (必选)
- 设置 Embedding 模型 (必选)
- 设置 Rerank 模型(可选): 参考 [坑 2:Hugging Face 运行 rerank 模型]
因为我有 GLM coding plan,所以 LLM 和 Embedding 模型直接使用了智谱的模型;但 GLM coding plan 不支持 Rerank 模型,且开发机机能有限,我选择本地部署 huggingface 的 cross-encoder/ms-marco-MiniLM-L-6-v2
模型设置示例
Step 2:创建数据集 / 知识库
- 进入知识库 Tab,新建 dataset
- 选择文档来源(上传文件或连接存储),上传你的笔记类文档(比如 Markdown/PDF/Docx)
- 设置配置:解析方法选择 General,此时可以看到 chunk size / overlap 等选项
- 开始 parsing / OCR / 抽取结构(视文档类型)
- 构建索引 + 检索测试
- 待 embedding/索引完成,可在检索测试页输入示例问题,可在结果页面查看命中的 chunk + 分数/来源。
Step 3:进入 Chat,对话并检查引用
- 进入 Chat Tab,新建 chat
- 配置聊天设置
- 在 知识库 设置中选择 Step2 创建的 dataset
- 配置 rerank 模型(可选)
- LLM 模型和配置,ragflow 提供了 balance / precise / improvise 3个预设模板,可以大致感受下不同参数的意义
| 参数 | 平衡模式 (Balance) | 精确模式 (Precise) | 即兴模式 (Improvise) | 说明 |
|---|---|---|---|---|
| Temperature | 0.5✓ | 0.2✓ | 0.8✓ | 控制生成文本的随机性和创造性 |
| Top P | 0.85✓ | 0.75✓ | 0.9✓ | 核采样,控制词汇选择的多样性 |
| Presence penalty | 0.2✓ | 0.5✓ | 0.1✓ | 惩罚重复出现的主题 |
| Frequency penalty | 0.3✓ | 0.5✓ | 0.1✓ | 惩罚高频词的重复使用 |
| 适用场景 | • 需要准确、一致输出的任务 • 技术文档编写 • 数据分析和报告 • 代码生成和调试 • 事实性问答 | • 日常对话和交流 • 通用内容创作 • 解释和说明 • 一般性问答 | • 创意写作 • 头脑风暴 • 故事创作 • 诗歌和艺术创作 • 需要创新想法的场景 |
调参原则
- 先调整Temperature,这是影响最大的参数
- Top P通常与 Temperature 配合使用
- Penalty参数用于控制重复,根据具体需求调整
- 不同模型对相同参数的响应可能不同,需要针对性测试
- 配置完成后即可尝试对话使用
Chat 页回答 + 引用/citation 展示
2.2 我遇见的坑
坑 1:elasticsearch 容器无法正常启动
常见原因: 这是由于
vm.max_map_count参数设置过低导致的 如果你是 macOS 上可以使用以下命令修复(参考官方文档[3]):# macOS with Docker Desktop: 更新 vm.max_map_countdocker run --rm --privileged --pid=host alpine sysctl -w vm.max_map_count=262144
坑 2:Hugging Face 运行 rerank 模型
- 模型下载慢 如果你的环境需要镜像或代理,经常需要设置:
HF_ENDPOINT等环境变量(具体以你环境为准)- 使用腾讯云 https://hf-mirror.com/[4] 镜像
- 通过
text-embeddings-router本地运行 rerank 模型
- 安装
brew install text-embeddings-inference
坑 3:知识库的内置解析方法Resume不可用
- 使用 resume 方法解析会返回错误,原因是开源版的 ragflow 未做支持: https://github.com/infiniflow/ragflow/issues/4913[5]
Part 3:手搓一个最小 RAG(LlamaIndex)——把概念对齐到代码
很多人学 RAG 最大问题是:看了讲解,还是不知道一段代码到底对应 pipeline 的哪一环,这一部分帮助建立"概念→代码映射"。
3.1 技术栈说明
我的最小 RAG demo(本地代码)使用:
- 框架:LlamaIndex
- LLM:
glm-4-plus - Embedding:
embedding-2 - 向量库:Chroma(持久化目录
./chroma_db) - 向量空间:cosine(HNSW)
- 向量数据库客户端:VectorDBZ向量
- 本地 Rerank 模型:TEI 运行 huggingface :
cross-encoder/ms-marco-MiniLM-L-6-v2
示例代码仓库 llamaindex_demo 地址:https://github.com/dalang/llamaindex_demo[6]
3.2 Indexing:从文档到向量库(indexer.py)
Indexing 阶段做的事情可以对应到 Part 1 的模块:
- 读取文档(Loader)
- 切块(Chunking)
- 向量化(Embedding)
- 写入向量库(Vector Store + Index)
在我的 demo 中,核心关注点是两个:
- 切块参数(chunk_size / overlap):我使用
CHUNK_SIZE = 512,CHUNK_OVERLAP = 50 - 本地向量数据库持久化(可以重启服务而不丢索引): 我选择了 Chroma 向量数据库
构建本地向量库
- 安装完依赖并设置完 embedding model 的 api key 后,执行
python indexer.py
- indexer.py 会读取项目根目录下的 data 文件夹并转换成向量并存储
- 通过
metadata={"hnsw:space": "cosine"}指定使用余弦相似度,因为 llamaindex 默认使用余弦相似度。
- 执行成功后会在项目根目录下的 chroma_db 生成向量库
- 推荐向量数据库 GUI工具 VectorDBZ 查看/验证生成的向量数据库
通过 VectorDBZ[7] 查看生成的 documents,每条记录对应一个向量数据。除了 vector 值和 document 文本内容,还会带其他元信息字段
VectorDBZ查看生成的向量数据库
通过 VectorDBZ 的 search 功能验证查询
VectorDBZ搜索验证
- 先通过配置的 GLM embedding 模型将待查询文本
What did the author do in college?转成向量值 (即截图中对应的 SEARCH VECTOR 框中的一组浮点序列),查询时就是用这组序列让向量数据库执行匹配结果。 - 点击 Search 按钮返回匹配记录(Top K用于限制返回的数量),匹配记录的
score字段是 chroma 数据库执行查询时计算的余弦相似度
3.3 Query:从问题到答案 + 引用(query_service.py)
初始查询先不引入 rerank(将 config.py 中设置USE_RERANK = False, SIMILARITY_TOP_K = 3),此时 Query 阶段对应模块:
- 将问题 embedding(或使用 query transform)
- 在 Chroma 里 top-k 检索
- 将命中的 chunks 组装成上下文(Context)
- 把"上下文 + 问题 + 规则"交给 LLM 生成
- 返回答案 + source_nodes(引用来源)
» uv run query_service.py======================================================================💬 RAG 查询服务 (输入 'quit' 退出)======================================================================❓ 请输入问题: What did the author do in college?======================================================================💡 回答:----------------------------------------------------------------------The author participated in a program at Cornell that didn't require choosing a specific major. They were able to select any classes they wanted and customize their degree program. The author chose to focus on "Artificial Intelligence" for their degree, though they later became disillusioned with this field during graduate school. They also worked on programming during this time, specifically writing programs on an IBM 1401 computer using Fortran, though they found it challenging to create meaningful programs with the limited available input methods.======================================================================📚 相关来源:📄 来源 1 (相似度: 0.6384) Then one day in April 1990 a crack appeared in the wall. I ran into professor Cheatham and he asked ... 📌 {'file_path': '/Users/dalang/playground/llamaindex_demo/data/paul_graham_essay.txt', 'file_name': 'paul_graham_essay.txt', 'file_type': 'text/plain', 'file_size': 75042, 'creation_date': '2026-01-13', 'last_modified_date': '2026-01-13'}📄 来源 2 (相似度: 0.6315) What I Worked OnFebruary 2021Before college the two main things I worked on, outside of school, ... 📌 {'file_path': '/Users/dalang/playground/llamaindex_demo/data/paul_graham_essay.txt', 'file_name': 'paul_graham_essay.txt', 'file_type': 'text/plain', 'file_size': 75042, 'creation_date': '2026-01-13', 'last_modified_date': '2026-01-13'}📄 来源 3 (相似度: 0.6206) I had gotten into a program at Cornell that didn't make you choose a major. You could take whatever ... 📌 {'file_path': '/Users/dalang/playground/llamaindex_demo/data/paul_graham_essay.txt', 'file_name': 'paul_graham_essay.txt', 'file_type': 'text/plain', 'file_size': 75042, 'creation_date': '2026-01-13', 'last_modified_date': '2026-01-13'}在 query_service.py 程序中使用相同的提问What did the author do in college?查询,返回了相同的3条 document 记录。但是相似度值却不相同
| chroma db 余弦相似度 | llamaindex 相似度 |
|---|---|
| 0.5513 | 0.6384 |
| 0.5403 | 0.6315 |
| 0.5229 | 0.6206 |
理解 RAG必须要理解分数的含义,这个问题困扰我许久,下面直接解释原因:
llamaindex 返回的相似度并没有直接使用 chroma db 返回的余弦相似度,在 https://github.com/run-llama/llama_index/blob/main/llama-index-integrations/vector_stores/llama-index-vector-stores-chroma/llama_index/vector_stores/chroma/base.py#L472-L473[8] 用如下指数衰减函数做了转换
similarity_score = math.exp(-distance)similarities.append(similarity_score)转换关系证明
# 从 cosine similarity 到 score 的完整转换: cosine_similarity = 0.5513# 手动计算的 cosine_distance = 1 - cosine_similarity = 0.4487# llamaindex 返回llamaindex_score = math.exp(-cosine_distance) = 0.6384 # 最终分数我认为指数衰减的优势: 非线性映射,放大高相似度之间的差异,压缩低相似度的差异
你可以通过以下代码查看 llamaindex 索引增强后的 LLM prompt
# 添加这几行来启用详细日志import llama_index.corellama_index.core.set_global_handler("simple")# 或者启用更详细的调试logging.getLogger("llama_index").setLevel(logging.DEBUG)下面的 LLM prompt 清晰的展示了 llamaindex 如何将 rag 返回的索引组装进 prompt
** Messages: **system: You are an expert Q&A system that is trusted around the world.Always answer the query using the provided context information, and not prior knowledge.Some rules to follow:1. Never directly reference the given context in your answer.2. Avoid statements like 'Based on the context, ...' or 'The context information ...' or anything along those lines.user: Context information is below.---------------------file_path: /Users/dalang/playground/llamaindex_demo/data/paul_graham_essay.txtThen one day in April 1990 a crack appeared in the wall. I ran into professor Cheatham and he asked if I was far enough along to graduate that June. ...<省略文本>...I had some money saved from consulting work I'd done in grad school; there was probably enough to last a year if I lived cheaply. Now all I had to do was learn Italian.file_path: /Users/dalang/playground/llamaindex_demo/data/paul_graham_essay.txtWhat I Worked On<省略文本>...My clearest memory is of the moment I learned it was possible for programs not to terminate, when one of mine didn't. On a machine without time-sharing, this was a social as well as a technical error, as the data center manager's expression made clear.With microcomputers, everything changed.file_path: /Users/dalang/playground/llamaindex_demo/data/paul_graham_essay.txtI had gotten into a program at Cornell that didn't make you choose a major. You could take whatever classes you liked, and choose whatever you liked to put on your degree. ...<省略文本>...I knew from experience that Lisp was interesting for its own sake and not just for its association with AI, even though that was the main reason people cared about it at the time. So I decided to focus on Lisp. In fact, I decided to write a book about Lisp hacking.---------------------Given the context information and not prior knowledge, answer the query.Query: What did the author do in college?3.4 Query with Rerank
将 config.py 中设置USE_RERANK = True, SIMILARITY_TOP_K = 10 #rerank 前通常初始检索数量建议增大到10 以上)
- 本地使用
text-embeddings-inferenceTEI 运行 huggingface rerank model:cross-encoder/ms-marco-MiniLM-L-6-v2:text-embeddings-router --model-id cross-encoder/ms-marco-MiniLM-L-6-v2 --port 8099 - 在 macos 上用
mitmproxy --mode reverse:http://127.0.0.1:8099 -p 9999, 通过 mitmproxy 可以方便查看 TEI 服务接收到的 api 请求 - 在 config.py 中设置 rerank api:
RERANK_API_URL = "http://localhost:9999"
» uv run query_service.py======================================================================💬 RAG 查询服务 (输入 'quit' 退出)======================================================================❓ 请输入问题: What did the author do in college?======================================================================💡 回答:----------------------------------------------------------------------The author went to Cornell University, where they were in a program that didn't require choosing a major. They selected "Artificial Intelligence" as their focus area. After completing their undergraduate degree, the author applied to three graduate schools (MIT, Yale, and Harvard) and was only accepted to Harvard, where they attended graduate school. During their first year of graduate school, the author became disillusioned with AI as it was practiced at the time and shifted their focus to Lisp programming, eventually deciding to write a book about Lisp hacking.======================================================================📚 相关来源:📄 来源 1 (相似度: 0.0380) What I Worked OnFebruary 2021Before college the two main things I worked on, outside of school, ... 📌 {'file_path': '/Users/dalang/playground/llamaindex_demo/data/paul_graham_essay.txt', 'file_name': 'paul_graham_essay.txt', 'file_type': 'text/plain', 'file_size': 75042, 'creation_date': '2026-01-13', 'last_modified_date': '2026-01-13'}📄 来源 2 (相似度: 0.0026) Then one day in April 1990 a crack appeared in the wall. I ran into professor Cheatham and he asked ... 📌 {'file_path': '/Users/dalang/playground/llamaindex_demo/data/paul_graham_essay.txt', 'file_name': 'paul_graham_essay.txt', 'file_type': 'text/plain', 'file_size': 75042, 'creation_date': '2026-01-13', 'last_modified_date': '2026-01-13'}📄 来源 3 (相似度: 0.0022) I had gotten into a program at Cornell that didn't make you choose a major. You could take whatever ... 📌 {'file_path': '/Users/dalang/playground/llamaindex_demo/data/paul_graham_essay.txt', 'file_name': 'paul_graham_essay.txt', 'file_type': 'text/plain', 'file_size': 75042, 'creation_date': '2026-01-13', 'last_modified_date': '2026-01-13'}🎯 工作流程
Embedding 检索 (Top 10) ChromaDB 返回 10 个候选文档
↓TEI Rerank (9999 端口) Cross-encoder 精确评分 选出最相关的 3 个文档
TEI Rerank API请求
TEI Rerank API响应
↓
LLM 生成 基于 Top 3 生成高质量答案,此时 相似度 值使用 rerank 的 score。
Part 4:从 Demo 到 Production:你还回答的 10 个问题
这一部分是roadmap/checklist:总结行业里把 RAG 从 Demo 推到生产时经常遇到的关键问题。 我本人没有把一个 RAG 系统做过完整生产闭环,因此这里不是生产复盘,而是"你要补的课表",问题主要有以下几个方面:
- 数据质量问题(解析失败、内容重复、噪声、权限)
- 检索质量问题(召回不足、召回过多、query 不匹配语料)
- 生成质量问题(引用不稳、幻觉、答非所问)
- 工程问题(延迟、成本、稳定性、可观测性)
- Q1:知识库如何增量更新?如何避免"重建全库"?
- 文档持续变化时,全量重算 embedding 很贵;而增量更新会引入版本、重复、失效引用。
- Q2:权限/多租户怎么做(ACL)?
- 同一个问题,不同用户能看的证据集合不同;只在生成端过滤是不够的。
- Q3:文档解析与切块如何按"文档类型"定制?
- PDF、扫描件、网页、表格、代码、法律条文……结构差异巨大。
- Q4:为什么你的系统需要 Hybrid + Rerank?
- 只用 dense 检索会丢关键词,BM25 又不懂语义;没有 rerank 时 top-k 噪声大。
- Q5:Query Rewrite / HyDE 什么时候做?怎么避免"越改越偏"?
- 用户问题短、口语化、带指代,"直接检索"容易召回不到。
- Q6:如何做可重复的评估(不是"我觉得它变好了")?
- RAG 的改动影响链路很长;没有评估集就只能凭感觉。
- Q7:如何做到可观测(tracing / replay / debugging)?
- 线上出问题时,你需要知道"是没召回到、还是召回到了但没用、还是模型瞎编"。
- Q8:如何控制延迟与成本(缓存、路由、分级)?
- 检索 + rerank + 大模型生成,三段叠加延迟;token 成本会爆。
- Q9:可靠性怎么做(降级策略是什么)?
- 向量库、rerank、LLM 任一环不稳都可能把系统拖垮。
- Q10:安全怎么做(提示注入、数据泄露、PII)?
- RAG 会把外部内容(文档)喂给模型,提示注入/越权读数据风险更高。
学AI大模型的正确顺序,千万不要搞错了
🤔2026年AI风口已来!各行各业的AI渗透肉眼可见,超多公司要么转型做AI相关产品,要么高薪挖AI技术人才,机遇直接摆在眼前!
有往AI方向发展,或者本身有后端编程基础的朋友,直接冲AI大模型应用开发转岗超合适!
就算暂时不打算转岗,了解大模型、RAG、Prompt、Agent这些热门概念,能上手做简单项目,也绝对是求职加分王🔋
📝给大家整理了超全最新的AI大模型应用开发学习清单和资料,手把手帮你快速入门!👇👇
学习路线:
✅大模型基础认知—大模型核心原理、发展历程、主流模型(GPT、文心一言等)特点解析
✅核心技术模块—RAG检索增强生成、Prompt工程实战、Agent智能体开发逻辑
✅开发基础能力—Python进阶、API接口调用、大模型开发框架(LangChain等)实操
✅应用场景开发—智能问答系统、企业知识库、AIGC内容生成工具、行业定制化大模型应用
✅项目落地流程—需求拆解、技术选型、模型调优、测试上线、运维迭代
✅面试求职冲刺—岗位JD解析、简历AI项目包装、高频面试题汇总、模拟面经
以上6大模块,看似清晰好上手,实则每个部分都有扎实的核心内容需要吃透!
我把大模型的学习全流程已经整理📚好了!抓住AI时代风口,轻松解锁职业新可能,希望大家都能把握机遇,实现薪资/职业跃迁~