核心要点
能分清两条路:私有「静态文档」用 RAG,「实时数据」(库存、价格、订单)用 function calling 查接口
能讲清 RAG 流程:文档切块 → 做 embedding 存向量库 → 按问题检索相关片段 → 拼进 prompt 让模型基于片段回答并给出处
强调「不是把数据塞进训练 / 微调」,私有数据靠检索或工具实时喂给模型
注意答不出要兜底说「不知道」,并防止把敏感数据泄露给公网模型
标准回答
根据数据是「静态文档」还是「实时变化」分两种做法。
私有文档用 RAG(最常用)
把文档(手册、Wiki、合同)切成小块 → 用 embedding 模型把每块转成向量、存进向量库 → 用户提问时把问题也转向量、检索出最相关的几段 → 把这几段拼进 prompt,让模型「只根据这些资料回答,并标注出处」。好处是文档更新只需重新入库,无需训练,且能溯源。
实时数据用 function calling
库存、天气、订单状态这类实时数据不该进向量库。给模型注册工具(如 queryStock(sku)),模型判断需要时返回要调用的函数和参数,你的代码去查真实接口,把结果回传给模型生成回答。
关键提醒
这两种都不是「重新训练模型」。微调改的是行为风格,不适合灌入易变的事实知识;私有/实时数据应靠检索和工具实时注入。
常见误区
⚠️ 常见踩坑
想着「把公司文档拿去微调模型」来注入知识——既贵又难更新还容易幻觉;正确做法是 RAG。另外检索不到时不兜底,模型会硬编一个答案。
追问
追问 1:什么数据用 RAG,什么数据用 function calling?
相对稳定、文本型、量大的知识(产品手册、政策、FAQ)用 RAG,提前切块入库;实时变化、结构化、要精确值的数据(余额、库存、当前价格)用 function calling 现查接口。两者也能结合:先 RAG 找到上下文,再调工具补实时字段。
追问 2:私有数据有隐私顾虑,不想出公网怎么办?
敏感场景选可私有部署的开源模型或企业内网 API,embedding 和向量库都放内网;调公网 API 前对 PII 脱敏、最小化传输内容;和供应商签数据不留存/不训练协议,并做访问审计。
延伸学习
与本题相关的知识库文章、术语、工具与行业资讯。