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基础设施
  • 需要工具链标准化的大型项目

手艺对比总结

维度RAGFunction CallMCP
本质外接知识库模型遥控器统一协议标准
主要作用知识检索增强外部系统调用跨平台工具集成
实时性协助实时更新实时函数调用依赖具体实现
技术复杂度中等(需要向量化)较低(函数定义)较高(协议实现)
应用场景问答系统、知识库API集成、自动化平台级基础设施
Java实现难度中等简单复杂

提醒

  1. 理解本质差异:RAG是知识增强,Function Call是能力扩展,MCP是标准统一
  2. 实际应用经验:准备具体的利用场景和实现方案
  3. 技术细节掌握:向量化原理、函数schema设计、协议标准理解
  4. 性能优化:检索效率、调用延迟、协议开销等考虑点
posted @ 2025-07-28 08:01  yfceshi  阅读(73)  评论(0)    收藏  举报