使用说明
EduChain:基于人工智能的教育内容服务器(符合MCP标准)
该项目展示了一个由Flask和谷歌Gemini AI构建的人工智能服务器,旨在生成和检索教育内容。它遵循多代理协作协议(MCP)的原则,允许与Claude Desktop等代理主机集成。
项目概述
EduChain提供以下核心功能:
- AI驱动的课程计划生成: 为任何给定主题动态创建全面的课程计划。
- 人工智能驱动的多项选择题(MCQ)生成: 根据需要为指定主题生成MCQ。
- 预定义MCQ检索: 从静态JSON文件中提供一组精心策划的多项选择题,并可选择基于主题的过滤。
该服务器使用Python和Flask构建,LangChain用于AI编排,Pydantic用于数据验证。
任务分解和完成
此存储库涵盖了以下任务的完成:
任务1:建立EduChain环境
- 说明: 安装必要的库和初始配置,以使用示例主题生成教育内容。
- 完成: 这
generate_content.py脚本演示了使用Gemini API的初始设置和内容生成。
任务2:使用EduChain构建MCP服务器
- 说明: 创建基于Flask的MCP服务器,公开AI驱动的工具(MCQ生成)和资源(课程计划生成、预定义的MCQ检索)。
- 完成: 这
educhain_mcp_server.py该文件实现了带有端点的Flask服务器/generate_lesson_plan,/generate_mcqs,以及/get_predefined_mcqsThepredefined_mcqs.json该文件保存静态MCQ数据。
任务3:使用Claude Desktop测试MCP服务器
- 说明: 配置Claude Desktop以连接到MCP服务器,并通过命令验证内容检索。
- 完成: 这
claude_desktop_config.json(假设,因为实际配置取决于Claude Desktop的内部结构)概述了如何将服务器的端点注册为外部工具/资源。这mcp_server_test_results.txt该文件包含示例命令和预期响应,模拟与MCP主机的交互。
存储库内容
educhain_mcp_server.py:充当MCP服务器的主Flask应用程序。generate_content.py:演示基本AI内容生成的初始脚本。generate_python_mcqs.py:一个客户端脚本,用于以编程方式从educhain_mcp_server.py.predefined_mcqs.json:一个JSON文件,其中包含跨不同主题的20个预先编写的MCQ示例集。.env.example:环境变量的示例文件(重命名为.env并填写您的API密钥)。claude_desktop_config.json:一个假设的配置文件,演示了Claude Desktop如何 会 配置为使用此服务器。 注意:实际位置和确切结构可能因您的Claude Desktop安装而异。mcp_server_test_results.txt:详细说明测试命令及其相应的服务器响应以供验证的文档。
设置和运行
先决条件
- Python 3.8+
pip(Python包安装程序)- Google Gemini API密钥(从 谷歌人工智能工作室)
- Claude Desktop(用于任务3测试)
安装
- 克隆存储库:
git clone <YOUR_REPOSITORY_URL> cd educhain - 创建Python虚拟环境(推荐):
python -m venv venv - 激活虚拟环境:
- 窗户:
.\venv\Scripts\activate - macOS/Linux:
source venv/bin/activate
- 窗户:
- 安装依赖关系:
pip install Flask python-dotenv langchain-google-genai langchain pydantic requests - 配置API密钥:
- 重命名
.env.example向.env. - 打开
.env并替换YOUR_GEMINI_API_KEY使用实际的Google Gemini API密钥:GEMINI_API_KEY="YOUR_GEMINI_API_KEY"
- 重命名
运行EduChain MCP服务器
- 确保您的虚拟环境已激活。
- 运行服务器:保持此终端窗口打开并运行。服务器将可在以下位置访问
python educhain_mcp_server.pyhttp://127.0.0.1:5000/.
测试服务器(不带Claude Desktop)
打开A 新 终端窗口,激活您的虚拟环境,并使用 curl 或提供的Python脚本:
- 查看主页: 打开
http://127.0.0.1:5000/在您的网络浏览器中。 - 制定课程计划:
curl -X POST -H "Content-Type: application/json" -d "{\"topic\": \"Introduction to Quantum Physics\"}" [http://127.0.0.1:5000/generate_lesson_plan](http://127.0.0.1:5000/generate_lesson_plan) - 生成MCQ:
curl -X POST -H "Content-Type: application/json" -d "{\"topic\": \"Data Structures in Python\", \"num_questions\": 5}" [http://127.0.0.1:5000/generate_mcqs](http://127.0.0.1:5000/generate_mcqs) - 获取预定义MCQ(全部):
curl [http://127.0.0.1:5000/get_predefined_mcqs](http://127.0.0.1:5000/get_predefined_mcqs) - 获取预定义MCQ(按主题筛选):
curl [http://127.0.0.1:5000/get_predefined_mcqs?subject=Biology](http://127.0.0.1:5000/get_predefined_mcqs?subject=Biology) - 跑
generate_python_mcqs.py:这将产生python generate_python_mcqs.pypython_programming_basics_mcqs.json.
与Claude Desktop集成
- 找到Claude桌面配置:
- 窗户:
%APPDATA%\Claude\claude_desktop_config.json - macOS:
~/Library/Application Support/Claude/claude_desktop_config.json - 如果文件不存在,则创建该文件。
- 窗户:
- 添加服务器配置: 从复制内容
claude_desktop_config.json将此存储库中的文件粘贴到Claude Desktop的配置文件中。 - 重新启动克劳德桌面: 确保完全退出Claude Desktop,然后重新启动以加载新配置。
- 在Claude Desktop中发出命令:
Generate 5 multiple-choice questions on Python loops.Provide a lesson plan for teaching algebra.Get predefined MCQs for Geography.- 观察克劳德的反应,并检查服务器终端的日志。