项目简介

“智能作业评分系统”是一个先进的学术作业评分后端,利用Agentic AI工作流和大语言模型(LLM)对学生作业进行全面评估。它支持多学科(数学、西班牙语、英语、科学、历史)的专业化分析,并提供语法检查、防抄袭、内容相关性评估和综合评分等功能。该系统集成了MCP服务器,通过标准化的JSON-RPC协议向LLM客户端提供丰富的上下文信息和外部功能调用能力。

主要功能点

  • 多学科智能评分: 针对数学、西班牙语、英语、科学和历史等科目提供专业化分析和评分,例如数学方程求解、西班牙语语法和文化理解、科学实验设计评估、历史时间准确性检查等。
  • Agentic AI工作流: 采用LangGraph驱动的智能处理管道,实现作业内容的自动分类、路由、并行分析和错误恢复。
  • 多LLM提供商支持: 集成Groq、OpenAI、Anthropic、Gemini等多种大语言模型,并提供优先级配置和故障切换机制,确保服务高可用性。
  • 企业级安全防护: 包含Prompt注入防护、输入验证、输出过滤和速率限制等功能,保障数据和系统安全。
  • 多格式及OCR支持: 支持处理PDF(包括扫描件通过OCR提取文本)、DOCX、DOC、MD、TXT及常见图像文件(PNG, JPG等)。
  • MCP服务器功能: 提供标准化的JSON-RPC接口,托管30+个作业分析工具、作业元数据资源和Prompt模板,供LLM客户端调用。

安装步骤

  1. 克隆仓库:
    git clone https://github.com/felixchess5/Intelligent-Assignment-Grading-System.git
    cd Intelligent-Assignment-Grading-System
  2. 创建并激活虚拟环境:
    python -m venv venv
    source venv/bin/activate  # Windows 用户请运行: venv\Scripts\activate
  3. 安装依赖:
    pip install -r requirements.txt
    # 安装额外依赖以支持专业化处理和MCP框架
    pip install sympy spacy langdetect mcp[cli] language-tool-python pdfplumber python-docx python-mammoth
    # 可选:安装西班牙语模型以增强西班牙语处理能力
    python -m spacy download es_core_news_sm
  4. 安装Tesseract OCR (处理扫描文档和图像必需,请根据操作系统选择):
    • macOS: 'brew install tesseract'
    • Ubuntu/Debian: 'sudo apt-get install tesseract-ocr'
    • Windows: 从 Tesseract GitHub Wiki 下载安装程序并按照说明安装。
  5. 配置API密钥: 复制项目根目录下的 '.env.example' 文件为 '.env'。
    cp .env.example .env
    编辑 '.env' 文件,在其中配置至少一个 LLM 提供商的 API 密钥。推荐使用 Groq 以获得更快的响应速度。
    # 至少配置以下其中一个API密钥
    GROQ_API_KEY=your_groq_api_key_here
    OPENAI_API_KEY=your_openai_api_key_here
    ANTHROPIC_API_KEY=your_anthropic_api_key_here
    GEMINI_API_KEY=your_gemini_api_key_here
    
    # (可选)LangSmith 追踪配置
    LANGCHAIN_TRACING_V2=true
    LANGCHAIN_API_KEY=your_langsmith_api_key
    LANGCHAIN_PROJECT=Assignment Grader

服务器配置 (MCP)

本服务器名为 "assignment-grader",通过 'stdio'(标准输入/输出)作为传输协议与MCP客户端通信。

MCP客户端需要配置服务器的启动命令和参数才能与本MCP服务器建立连接。以下是客户端可能需要的一个JSON格式配置示例及其参数注释,请根据实际部署环境进行调整。

{
  "server_name": "assignment-grader",
  "command": "python",
  "args": ["src/main_agentic.py", "mcp"],
  "transport": "stdio",
  "description": "智能作业评分系统的MCP服务器,提供多学科作业分析工具。"
}
  • 'server_name': MCP服务器的唯一标识符,本系统为 "assignment-grader"。
  • 'command': 启动MCP服务器的可执行文件命令,通常为 "python"。
  • 'args': 传递给 'command' 的参数列表。
    • 'src/main_agentic.py': MCP服务器的入口脚本。
    • 'mcp': 指示脚本以MCP服务器模式运行的参数。
  • 'transport': 服务器与客户端通信的传输协议,本系统使用 "stdio"。
  • 'description': 服务器的简要描述。

客户端可以通过JSON-RPC协议向此服务器发送请求,调用其注册的工具、访问资源或获取Prompt模板。

基本使用方法 (作为MCP服务器)

  1. 启动MCP服务器: 在项目根目录下打开终端,运行以下命令启动MCP服务器:

    python src/main_agentic.py mcp

    服务器启动后,它将通过标准输入/输出(stdio)等待MCP客户端的JSON-RPC请求。

  2. MCP客户端交互: MCP客户端(如LLM代理)可以连接到此服务器并调用其提供的工具,例如:

    • 调用 'grammar_check' 工具: 检查作业文本的语法错误。
    • 调用 'grade_assignment' 工具: 对作业进行多维度评分。
    • 调用 'process_assignment_from_file' 工具: 从指定文件路径处理整个作业,并返回详细分析结果。
    • 访问 'assignment://metadata/{file_path}' 资源: 获取作业文件的元数据。
    • 获取 'assignment_analysis_prompt' 模板: 获取用于不同分析任务的Prompt模板。

    例如,一个MCP客户端可能会发送一个JSON-RPC请求来调用 'grammar_check' 工具:

    {
      "jsonrpc": "2.0",
      "method": "grammar_check",
      "params": {
        "text": "This is a sample text with grammer errors."
      },
      "id": 1
    }

    服务器将处理请求并返回一个JSON-RPC响应。

信息

分类

AI与计算