HSE硕士项目MCP申请
这个项目实现了一个多组件程序(MCP)应用,用于检索和更新关于高等经济学院(Higher School of Economics)硕士项目的数据,并提供了一个基于聊天的用户界面来查询这些数据。
特点/特性
- 数据抓取与更新从HSE(高等经济学院)网站获取每个硕士项目的最新录取信息
- 数据存储程序数据以CSV文件形式本地存储,可根据需要更新
- 大型语言模型(LLM)集成通过OpenRouter API与大型语言模型(LLM)集成,实现自然语言交互
- 聊天用户界面(Chat UI)基于Web的聊天界面,支持WebSocket通信
- Docker化部署使用docker-compose实现完全容器化
项目结构
mcp_hse_masters_app/
├── app/ # Backend application code
│ ├── Dockerfile # Backend container config
│ ├── __init__.py
│ ├── main.py # FastAPI server entry point
│ ├── hse_scraper.py # HSE website scraping logic
│ ├── data_store.py # Data management and CSV operations
│ └── llm_agent.py # LLM integration via OpenRouter
├── frontend/ # Frontend container
│ ├── Dockerfile # Frontend container config
│ ├── nginx.conf # Nginx configuration
│ ├── index.html # Chat UI
│ ├── style.css # Styling
│ └── script.js # WebSocket client
├── data/ # Data persistence
├── docker-compose.yml # Multi-service orchestration
├── requirements.txt # Python dependencies
├── .gitignore # Git ignore rules
└── README.md # This file设置
- 创建环境文件:
# Create .env file with your OpenRouter API key
echo "OPENROUTER_API_KEY=your_api_key_here" > .env从以下网址获取您的API密钥:https://openrouter.ai/keys
- 使用Docker构建并运行:
docker-compose up --build -d- 访问该应用程序:
- 在您的浏览器中打开 http://localhost - 开始与HSE项目助理聊天
使用示例
使用自然语言(俄语或英语)提问:
- “显示录取分数线最低的5个专业”
- “‘人口学’专业的录取分数线是多少?”
- “为所有程序更新数据” - Update data for all programs
- “给我发个程序检查结果的文件”——下载包含程序数据的CSV文件
API 函数
大型语言模型(LLM)可以使用这些功能来检索数据:
get_program_details- 获取特定程序的详细信息list_lowest_passing- 列出录取分数线最低的项目update_dataset- 通过抓取网站更新所有程序数据download_csv- 获取CSV文件的下载链接
发展
在本地运行而无需Docker:
- 安装依赖项:
pip install -r requirements.txt- 设置环境变量:
export OPENROUTER_API_KEY=your_api_key_here- 运行服务器:
uvicorn app.main:app --host 0.0.0.0 --port 8000配置
- OpenRouter API设置
OPENROUTER_API_KEY在你的.env文件 - 数据存储CSV文件存储在
data/目录 - 港口后端运行在8000端口,Nginx运行在80端口
故障排除
- 请确保您的OpenRouter API密钥有效且有足够的信用额度
- 检查 Docker 日志:
docker-compose logs backend - 在浏览器开发者工具中验证WebSocket连接
