让 AI 读资料答题(迷你 RAG)
昨天你让 AI 学会了"动手用工具"。今天补上它最后一块短板:它不知道你的私有资料——公司文档、产品手册、你自己的笔记。今天我们让它"看着你给的资料回答",这就是这两年企业最爱用的技术——RAG 📚。
痛点:AI 不知道你的私事
问 AI"你们公司的退货政策是几天?"或"我上周写的那份计划里第三条是啥?"——它当然答不上来,甚至会一本正经地瞎编一个(这叫"幻觉")。因为这些是你的私有资料,它训练时压根没见过。
👶 那能不能把我的资料"教"给它、让它记住?
🧑🏫 "重新训练"太贵太慢,普通人玩不起。有个又快又便宜的土办法:提问时,顺手把相关资料一起递给它看,让它"开卷考试"。这就是今天的主角——RAG。
本质:把资料塞进提示词
RAG 这个词听着唬人,最朴素的做法简单到你会笑:把资料和问题拼在一起,一块儿发给 AI,让它"照着资料回答"。
拼出来的提示词大概长这样,一目了然:
❓ 问题:你们支持退货吗?几天?
📢 要求:请只根据上面的资料回答,资料里没有就说"资料里没提到"。
动手:迷你 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} 变成你输入的问题——一句话就把资料和问题拼好了,特别顺手。
小结
今天的核心,一句话拿走:
✅ 搞懂了 AI 为什么不知道你的私有资料、还爱瞎编;
✅ 掌握了最朴素的 RAG——把"资料 + 问题"一起塞进提示词;
✅ 做出了一个基于你给的资料回答、不瞎编的迷你问答程序!
恭喜!聊天记忆、用工具、读资料——AI 助手的三大件你都会了。明天是大结局:把它们拼成一个真正的 AI 小助手,然后……你就正式入门了 🎓
Day 7 · 拼出你的 AI 助手 + 结业 →