MCP问答聊天机器人
一个全面的问答聊天机器人,专门回答有关模型上下文协议(MCP)的问题。这个聊天机器人帮助开发人员了解MCP的概念、实现、最佳实践和故障排除。
特性
- 🤖 AI驱动的响应:使用OpenAI GPT-3.5-turbo提供智能答案
- 📚 综合知识库:涵盖MCP概念、实现模式和常见问题
- 🔍 语义搜索:使用句子嵌入查找相关信息
- 💬 交互式用户界面:简洁易用的Streamlit界面
- 🎯 建议的问题:帮助用户入门的预构建问题
- 📱 响应式设计:适用于不同尺寸的屏幕
聊天机器人涵盖了什么
MCP核心概念
- 模型上下文协议概述和架构
- 客户端-服务器通信模式
- 传输层(stdio、HTTP、WebSocket)
- 协议实施细节
MCP能力
- 资源:静态和动态数据访问
- 工具:函数调用和动作执行
- 提示:可重用的提示模板
- 采样:LLM完成请求
实施指南
- 分步开发指南
- 最佳实践和设计模式
- 安全注意事项
- 性能优化
故障排除
- 常见问题和解决方案
- 调试技术
- 连接问题
- 协议错误
安装说明
先决条件
- Python 3.8或更高版本
- OpenAI API密钥
- 虚拟环境(推荐)
安装
- 克隆或导航到项目目录
cd "D:\Desktop\Masai\W4D1\Q&A-Chatbot-About-MCP-Servers"- 安装依赖项
pip install -r requirements.txt- 设置环境变量
- 复制 .env.example 向 .env - 添加您的OpenAI API密钥:
OPENAI_API_KEY=your_actual_api_key_here- 运行应用程序
streamlit run app.py- 打开浏览器 并前往
http://localhost:8501
用法
入门指南
- 在web浏览器中打开应用程序
- 使用建议的问题探索MCP主题
- 在聊天输入中键入您自己的问题
- 获取有关MCP的详细、上下文相关的答案
示例问题
- “什么是模型上下文协议?”
- “如何创建我的第一个MCP服务器?”
- “MCP的安全考虑是什么?”
- “如何在MCP服务器中实现工具?”
- “资源和工具有什么区别?”
功能概述
- 聊天界面:带有消息历史记录的主要对话区域
- 建议的问题:右侧边栏上的快速入门问题
- 知识库:自动引用综合MCP信息
- 语义搜索:查找每个问题的相关上下文
- 清除聊天:重置对话历史记录
项目结构
Q&A-Chatbot-About-MCP-Servers/
│
├── app.py # Main Streamlit application
├── mcp_chatbot.py # Chatbot logic and knowledge base handler
├── knowledge_base.json # Comprehensive MCP knowledge base
├── requirements.txt # Python dependencies
├── .env.example # Environment variables template
├── .env # Your actual environment variables (create this)
└── README.md # This file技术细节
建筑
- 前端:流线型网页界面
- 后端:OpenAI GPT-3.5-turbo API
- 知识库:基于JSON的语义搜索
- 嵌入:用于相似性匹配的句子变换器
关键组件
- MCP知识库类
- 加载和管理MCP知识 - 为语义搜索创建嵌入 - 查找问题的相关上下文
- MCPChatbot类
- 处理OpenAI API交互 - 格式化上下文并生成响应 - 管理对话历史记录
- 流媒体接口
- 用户友好的聊天界面 - 建议问题侧栏 - 配置状态显示
知识库主题
- MCP概述和架构
- 能力(资源、工具、提示、采样)
- 实现模式
- 安全最佳实践
- 常见用例
- 故障排除指南
- 开发指南
- 协议细节
- 生态系统和工具
配置
环境变量
OPENAI_API_KEY=your_openai_api_key_here
OPENAI_MODEL=gpt-3.5-turbo
MAX_TOKENS=1000
TEMPERATURE=0.7定制
- 知识库:编辑
knowledge_base.json添加更多MCP信息 - UI造型:修改CSS
app.py用于自定义外观 - 模型设置:调整温度,max_tokens
.env文件 - 建议的问题:更新列表
mcp_chatbot.py
故障排除
常见问题
- API密钥错误
- 确保在中正确设置了OpenAI API密钥 .env - 检查钥匙是否有足够的积分
- 模块导入错误
- 安装所有要求: pip install -r requirements.txt - 确保您处于正确的虚拟环境中
- Streamlit未启动
- 检查端口8501是否可用 - 尝试使用其他端口运行: streamlit run app.py --server.port 8502
- 知识库未加载
- 确保 knowledge_base.json 存在于项目目录中 - 如果修改了文件,请检查JSON语法
贡献
您可以通过以下方式增强聊天机器人:
- 向知识库添加更多MCP知识
- 改进UI/UX设计
- 添加对话导出等新功能
- 优化搜索和响应质量
许可证
该项目是马赛课程的一部分,用于教育目的。
致谢
- 模型上下文协议文档和社区
- 用于GPT-3.5-turbo API的OpenAI
- Streamlit用于web框架
- 语义搜索功能的句子转换器
