RAG、Function Call、MCP技术笔记 - 实践
核心概念理解
为了增强大模型能力的重要手段,但各有侧重点和应用场景。就是这三种工艺都
RAG(检索增强生成)
RAG本质上是为大模型外接一个动态知识库。当模型需要回答问题时,先从知识库中检索相关信息,再结合检索结果生成答案。
核心原理:
- 将文档内容进行向量化存储(通常启用Embedding模型)
- 用户提问时,将问题也向量化
- 通过相似度计算(如欧氏距离、余弦相似度)找到最相关的文档片段
- 将检索到的内容作为上下文传给大模型生成最终答案
Java实现要点:
- 可利用Elasticsearch、Pinecone等向量数据库
- Spring Boot集成OpenAI API进行Embedding
- 常用算法库如Apache Lucene进行相似度计算
Function Call(函数调用)
Function Call让大模型能够主动调用外部函数或API,实现与外部环境的交互。
核心机制:
- 定义函数schema,告诉模型有哪些函数可用
- 否需要调用函数就是模型根据用户输入判断
- 执行函数调用并获取结果
- 将结果整合到最终回复中
Java实现示例:
// 定义天气查询函数
public class WeatherFunction
{
public String getWeather(String city) {
// 调用天气API
return weatherService.queryWeather(city);
}
}
MCP(模型上下文协议)
MCP是一个统一的协议标准,让不同厂商的模型和工具能够无缝集成,就像给AI统一了"手"的概念。
价值体现:
- 跨平台兼容性:一次编写,多处使用
- 统一接口标准:降低集成复杂度
- 生态系统构建:促进AI软件链的标准化
技术选型考虑
RAG适用场景:
- 企业知识库问答系统
- 客服机器人
- 文档检索与总结
- 需要实时更新知识的应用
Function Call适用场景:
- 需要调用外部API的智能助手
- 工作流自动化
- 多系统集成的AI应用
- 必须执行具体操作的场景
MCP适用场景:
- 多模型支持的平台
- 企业级AI基础设施
- 需要工具链标准化的大型项目
手艺对比总结
| 维度 | RAG | Function Call | MCP |
|---|---|---|---|
| 本质 | 外接知识库 | 模型遥控器 | 统一协议标准 |
| 主要作用 | 知识检索增强 | 外部系统调用 | 跨平台工具集成 |
| 实时性 | 协助实时更新 | 实时函数调用 | 依赖具体实现 |
| 技术复杂度 | 中等(需要向量化) | 较低(函数定义) | 较高(协议实现) |
| 应用场景 | 问答系统、知识库 | API集成、自动化 | 平台级基础设施 |
| Java实现难度 | 中等 | 简单 | 复杂 |
提醒
- 理解本质差异:RAG是知识增强,Function Call是能力扩展,MCP是标准统一
- 实际应用经验:准备具体的利用场景和实现方案
- 技术细节掌握:向量化原理、函数schema设计、协议标准理解
- 性能优化:检索效率、调用延迟、协议开销等考虑点

浙公网安备 33010602011771号