本项目旨在展示如何将 Model Context Protocol (MCP) 与 OpenAI 的 API 集成,打造一个让 OpenAI 能访问并运用您 MCP 服务器所提供工具的系统,为智能问答场景提供强大支持。
docker build -t mcp-server .
docker run -p 8000:8000 mcp-server
pip install openai
export OPENAI_API_KEY="your_api_key"
python client.py
# 使用 Docker 构建并运行 MCP 服务器镜像
docker build -t mcp-server .
docker run -p 8000:8000 mcp-server
# 示例代码:使用 OpenAI 的 Python 库调用 MCP 服务器
from openai import Client
client = Client("your_api_key")
response = client.chat.completions.create(
model="gpt-4",
messages=[
{"role": "user", "content": "我们的度假政策是什么?"}
],
tools=[{
"type": "function",
"function": {
"name": "retrieve_policy_document",
"parameters": {"policy_type": "vacation"},
"description": "从知识库中检索指定的政策文档。"
}
}]
)
{
"policies": [
{
"id": "1",
"type": "vacation",
"content": "全职员工每年享有20天带薪假期。\n服务满6个月后方可使用。\n未使用的假期可保留至第二年,但最多不超过5天。\n请假需提前两周通过HR系统提交。"
},
{
"id": "2",
"type": "remote_work",
"content": "公司采用混合办公模式。\n员工每周最多可以远程办公3天。\n远程办公需经团队协调并获得直接主管批准。\n所有远程办公均需具备稳定的网络连接和专用工作空间。"
}
]
}
按照上述“示例运行步骤”操作,即可启动系统并进行基本的问答查询。
可根据实际需求修改知识库文件中的内容,或调整客户端代码中的工具参数,以实现更复杂的工具调用和查询功能。
本示例详细说明了以下内容:
本示例使用 sse 传输 进行客户端和服务器之间的通信,这意味着客户端和服务器在不同进程中运行。
本项目通过 MCP 协议实现了 OpenAI 与自定义知识库的集成。MCP 服务器作为工具提供者,将知识库中的数据以标准化的接口暴露给 OpenAI。OpenAI 在接收到用户查询后,根据查询内容和上下文动态选择合适的工具进行调用。客户端负责转发 OpenAI 的工具调用请求和接收工具执行结果。整个系统通过 sse 传输进行通信,确保了数据的实时性和高效性。
{
"id": "chatcmpl-abcdefgh",
"message": {
"role": "assistant",
"content": "我们公司的度假政策如下:
- 全职员工每年享有20天带薪假期。
- 服务满6个月后方可使用。
- 未使用的假期可保留至第二年,但最多不超过5天。
- 请假需提前两周通过HR系统提交。"
}
}
这个集成示例展示了如何利用 MCP 和 OpenAI 的强大功能来构建智能问答系统,使用户能够轻松获取所需信息。