使用说明
OpenAI与MCP的集成
本节演示如何将模型上下文协议(MCP)与OpenAI的API集成,以创建一个系统,使OpenAI可以访问和使用MCP服务器提供的工具。
概述
此示例显示了如何:
- 创建一个公开知识库工具的MCP服务器
- 将OpenAI连接到此MCP服务器
- 允许OpenAI在响应用户查询时动态使用这些工具
连接方法
此示例使用 stdio传输 用于客户端和服务器之间的通信,这意味着:
- 客户端和服务器在同一进程中运行
- 客户端直接将服务器作为子进程启动
- 不需要单独的服务器进程
如果你想将客户端和服务器拆分为单独的应用程序(例如,在不同的机器上运行服务器),你需要使用 SSE(服务器发送事件)传输 相反。有关设置SSE连接的详细信息,请参阅 简单的服务器设置 部分。
数据流说明
- 用户查询:用户向系统发送查询(例如,“我们公司的假期政策是什么?”)
- OpenAI API:OpenAI从MCP服务器接收查询和可用工具
- 工具选择:OpenAI根据查询决定使用哪些工具
- MCP客户端:客户端接收OpenAI的工具调用请求并将其转发给MCP服务器
- MCP服务器:服务器执行所请求的工具(例如,检索知识库数据)
- 响应流:工具结果通过MCP客户端流回OpenAI
- 最终响应:OpenAI生成包含工具数据的最终响应
OpenAI如何执行工具
OpenAI的函数调用机制通过以下步骤与MCP工具配合使用:
- 工具注册:MCP客户端将MCP工具转换为OpenAI的函数格式
- 工具选择:OpenAI根据用户查询决定使用哪些工具
- 工具执行:MCP客户端执行所选工具并返回结果
- 上下文集成:OpenAI将工具结果纳入其响应中
MCP的作用
MCP是AI模型和后端系统之间的标准化桥梁:
- 标准化:MCP为AI模型与工具交互提供了一致的接口
- 抽象:MCP抽象了后端系统的复杂性
- 安全:MCP允许您精确控制哪些工具和数据暴露给AI模型
- 灵活性:您可以在不更改AI集成的情况下更改后端实现
实现细节
服务器(server.py)
MCP服务器公开了一个 get_knowledge_base 从JSON文件中检索问答对的工具。
客户(client.py)
客户:
- 连接到MCP服务器
- 将MCP工具转换为OpenAI的函数格式
- 处理OpenAI和MCP服务器之间的通信
- 处理工具结果并生成最终响应
知识库(data/kb.json)
包含可通过MCP服务器查询的有关公司政策的问答对。
运行示例
- 确保已安装所需的依赖项
- 在中设置OpenAI API密钥
.env文件 - 运行客户端:
python client.py
注意:使用本例中使用的stdio传输,您不需要单独运行服务器,因为客户端会自动启动它。
