随着基础模型能力的提升,实际应用对具备上下文理解能力、检索增强和代理驱动型的人工智能提出了要求。这就是RAG-MCP真正闪耀的地方。
在这次博文中,我们来拆解:
- 什么是RAG(检索增强生成)?
- 什么是MCP(模型上下文协议)?
- 如何将它们结合起来构建智能AI代理程序
- 一个实际工作的Python示例
检索增强生成(RAG) 是一种架构,其中语言模型会从外部知识源检索信息并用于生成文本。
- 检索相关的外部资料(使用向量搜索或语义搜索)
- 补充提示,加入检索到的上下文
- 生成回答
这解决了上下文长度限制性的问题,并通过将答案锚定在事实数据上,帮助模型避免出现幻觉。
什么是MCP(模型上下文协议):MCP 是一种用于为AI代理编码动态上下文的结构化方式。它尤其适用于希望代理能够实现:
- 根据不同的环境和情况调整其行为。
- 在交互过程中学习和适应新信息。
-
更好地理解和应对复杂情况。
- 追踪他们的角色
- 理解工具
- 管理长期运行的任务
它像一个轻量级的协议层,针对AI上下文,让链式操作、内存管理和环境设置变得更简单。
可以把它想象成围绕你RAG查询的元数据和推理状态。
RAG-MCP (架构 Architecture) 用户查询
↓
检索器 → [文档]
↓
MCP 格式化器:{"role": "分析师", "任务": "...", "上下文": [文档列表]}
↓
LLM (Gemini/Claude/GPT)
↓
基于上下文的响应,遵循协议
Python 代码:Minimal RAG-MCP 流水线
1. 安装所需的软件包
pip install sentence-transformers faiss-cpu openai
安装必要的库以进行文本处理和向量检索。
2. 设置向量存储库 从sentence_transformers导入SentenceTransformer模型
导入faiss
导入numpy作为np
# 要检索的文档
docs = [
"RAG使用检索来改进生成。",
"MCP是一种用于嵌入模型行为和任务上下文的协议。",
"LangChain和LlamaIndex提供了RAG框架。",
"向量存储支持文本的语义搜索。"
]
# 创建向量索引
model = SentenceTransformer("all-MiniLM-L6-v2")
embeddings = model.encode(docs)
index = faiss.IndexFlatL2(embeddings.shape[1])
index.add(embeddings)
瑞典语翻译无需更改,根据中文翻译的修改要求:
- 第三步,定义检索器
def 获取前k个(查询, k=2):
查询向量 = 模型.encode([查询])
距离, 索引 = 索引搜索(np.array(查询向量), k)
return [文档[i] for i in 索引[0]]
4. 构建 MCP 封装
def build_mcp_prompt(user_query, context_docs):
return f"""<MCP>
角色: 分析员代理
任务: 用了解上下文的方式来回答用户的问题,并确保推理基于事实。
上下文:
{"".join(f"- {doc}\n" for doc in context_docs)}
用户的问题是:
{user_query}
回答如下:"""
5. 回复 (OpenAI 例子)
import openai
openai.api_key = "your-openai-key"
# 生成带有OpenAI的提示内容
def generate_with_openai(prompt):
# 使用gpt-3.5-turbo模型生成对话完成
response = openai.ChatCompletion.create(
model="gpt-3.5-turbo",
messages=[{ "role": "user", "content": prompt }],
temperature=0.5 # 设置模型生成文本时的随机性程度,值越小生成的文本越贴近输入提示的风格
)
return response.choices[0].message["content"]
6. 完整流程
query = "MCP是如何帮助AI代理处理上下文的?"
retrieved = retrieve_top_k(query, k=2)
mcp_prompt = build_mcp_prompt(query, retrieved)
output = generate_with_openai(mcp_prompt)
print("🔍 下面是我们生成的MCP提示:\n", mcp_prompt)
print("\n💡 RAG-MCP 回复:\n", output)
RAG-MCP为什么重要?
RAG-MCP 是 智能工具型AI代理 的基础——非常适合做长上下文的任务,例如:
• 法律分析
• 财务报表
• 医疗文件审核
• 开发助手
无论你使用LangChain或LlamaIndex,或者自己构建一个 orchestrator — MCP 为你的 RAG 流程增添了一个结构,使你的代理更加一致、可解释和强大。
點擊查看更多內(nèi)容
為 TA 點贊
評論
評論
共同學習,寫下你的評論
評論加載中...
作者其他優(yōu)質(zhì)文章
正在加載中
感謝您的支持,我會繼續(xù)努力的~
掃碼打賞,你說多少就多少
贊賞金額會直接到老師賬戶
支付方式
打開微信掃一掃,即可進行掃碼打賞哦