HSE硕士项目数据查询应用

一个用于查询和更新HSE硕士项目数据的多组件程序应用,提供基于聊天的用户界面和LLM集成。

  • by maxim-lixakov
  • Python
  • 本地部署
  • 更新于
在 GitHub 查看 maxim-lixakov/mcp_hse_masters_app

使用说明

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

设置

  1. 创建环境文件:

    # Create .env file with your OpenRouter API key
    echo "OPENROUTER_API_KEY=your_api_key_here" > .env
    

    从以下网址获取您的API密钥:https://openrouter.ai/keys

  2. 使用Docker构建并运行:

    docker-compose up --build -d
    
  3. 访问该应用程序:

    • 在您的浏览器中打开 http://localhost
    • 开始与HSE项目助理聊天

使用示例

使用自然语言(俄语或英语)提问:

  • “显示录取分数线最低的5个专业”
  • “‘人口学’专业的录取分数线是多少?”
  • “为所有程序更新数据” - Update data for all programs
  • “给我发个程序检查结果的文件”——下载包含程序数据的CSV文件

API 函数

大型语言模型(LLM)可以使用这些功能来检索数据:

  • get_program_details - 获取特定程序的详细信息
  • list_lowest_passing - 列出录取分数线最低的项目
  • update_dataset - 通过抓取网站更新所有程序数据
  • download_csv - 获取CSV文件的下载链接

发展

在本地运行而无需Docker:

  1. 安装依赖项:

    pip install -r requirements.txt
    
  2. 设置环境变量:

    export OPENROUTER_API_KEY=your_api_key_here
    
  3. 运行服务器:

    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连接