入门篇 · 第 6 天 / 共 7 天

让 AI 读资料答题(迷你 RAG)

昨天你让 AI 学会了"动手用工具"。今天补上它最后一块短板:它不知道你的私有资料——公司文档、产品手册、你自己的笔记。今天我们让它"看着你给的资料回答",这就是这两年企业最爱用的技术——RAG 📚。

1234567 你在第 6 天

痛点:AI 不知道你的私事

问 AI"你们公司的退货政策是几天?"或"我上周写的那份计划里第三条是啥?"——它当然答不上来,甚至会一本正经地瞎编一个(这叫"幻觉")。因为这些是你的私有资料,它训练时压根没见过。

📖 AI 像"没读过你家家谱的博士" 它上知天文下知地理,但你家的家谱、你公司的内部手册、你昨天记的笔记,它从没见过。你不把资料给它看,它只能靠猜——猜错了还说得特别自信。

👶 那能不能把我的资料"教"给它、让它记住?

🧑‍🏫 "重新训练"太贵太慢,普通人玩不起。有个又快又便宜的土办法:提问时,顺手把相关资料一起递给它看,让它"开卷考试"。这就是今天的主角——RAG。

本质:把资料塞进提示词

RAG 这个词听着唬人,最朴素的做法简单到你会笑:把资料和问题拼在一起,一块儿发给 AI,让它"照着资料回答"。

📝 从"闭卷考"变"开卷考" 不给资料,AI 是闭卷考,只能凭记忆瞎写;把资料附在问题前面,就成了开卷考——它照着你给的材料抄答案,又准又不瞎编。你要做的,就是"把课本翻到那一页,摊在它面前"。

拼出来的提示词大概长这样,一目了然:

📄 资料:「小绿茶饮,支持 7 天无理由退货,会员积分 1 元 = 1 分……」

问题:你们支持退货吗?几天?

📢 要求:只根据上面的资料回答,资料里没有就说"资料里没提到"。
💡 "R" 是从哪来的RAG 全称里的 R 是"检索(Retrieval)"。资料很少时,直接全塞进去就行;但资料成千上万页时塞不下,就得先"检索"出和问题最相关的几段再塞——那套"先检索、再塞"的完整 RAG,是进阶篇的内容。今天你先掌握最核心的"塞资料"这一步。

动手:迷你 RAG 问答

新建 rag.py。核心就一件事:用 f-string 把"资料 + 问题"拼成一段话,发给 AI。这里的资料随便换成你的简历、产品说明、读书笔记都行。

from openai import OpenAI
client = OpenAI(api_key="你的钥匙", base_url="https://api.deepseek.com")

# 这就是你的"私有资料",随便换成你自己的内容
data = "小绿茶饮:支持7天无理由退货;会员1元=1积分;营业时间9:00-22:00。"

question = input("你问:")

# 关键:把【资料 + 问题 + 要求】拼成一段提示词,一起发过去
prompt = f"请只根据下面的资料回答问题,资料没提到就说不知道。\n\n资料:{data}\n\n问题:{question}"

resp = client.chat.completions.create(
    model="deepseek-chat",
    messages=[{"role": "user", "content": prompt}],
)
print("AI:" + resp.choices[0].message.content)

运行,用资料内外的问题各试一次:

python rag.py

你们几点关门?——它会答"22:00"(资料里有);再问 你们卖咖啡吗?——它会老实说"资料里没提到",不再瞎编。这份诚实,全靠你那句"只根据资料回答"。

🎉 见证时刻
你的 AI 第一次基于你的私有资料回答问题了!市面上那些"喂公司文档、秒变客服机器人"的产品,内核就是这个"把资料塞进提示词"的动作放大版。你已经摸到 RAG 的门道了。

👶 f"...{data}..." 前面那个 f 是干嘛的?

🧑‍🏫 那是 Python 的"填空模板"。带 f 的字符串里,{变量名} 会被自动替换成变量的内容。所以 {data} 就变成了那段资料、{question} 变成你输入的问题——一句话就把资料和问题拼好了,特别顺手。

小结

今天的核心,一句话拿走:

💡 RAG = 让 AI 开卷考 想让 AI 答对它本来不知道的东西,不用重新训练,把资料附在问题旁边一起发过去就行。资料多到塞不下时,才需要"先检索最相关的几段"——那是进阶。入门阶段,"拼资料"这一招就够你做出不少好玩的东西了。
🎯 今天你收获了什么
✅ 搞懂了 AI 为什么不知道你的私有资料、还爱瞎编
✅ 掌握了最朴素的 RAG——把"资料 + 问题"一起塞进提示词
✅ 做出了一个基于你给的资料回答、不瞎编的迷你问答程序!

恭喜!聊天记忆、用工具、读资料——AI 助手的三大件你都会了。明天是大结局:把它们拼成一个真正的 AI 小助手,然后……你就正式入门了 🎓

Day 7 · 拼出你的 AI 助手 + 结业 →
← 回 Day 5