项目简介
“智能作业评分系统”是一个先进的学术作业评分后端,利用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客户端调用。
安装步骤
- 克隆仓库:
git clone https://github.com/felixchess5/Intelligent-Assignment-Grading-System.git cd Intelligent-Assignment-Grading-System - 创建并激活虚拟环境:
python -m venv venv source venv/bin/activate # Windows 用户请运行: venv\Scripts\activate - 安装依赖:
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 - 安装Tesseract OCR (处理扫描文档和图像必需,请根据操作系统选择):
- macOS: 'brew install tesseract'
- Ubuntu/Debian: 'sudo apt-get install tesseract-ocr'
- Windows: 从 Tesseract GitHub Wiki 下载安装程序并按照说明安装。
- 配置API密钥:
复制项目根目录下的 '.env.example' 文件为 '.env'。
编辑 '.env' 文件,在其中配置至少一个 LLM 提供商的 API 密钥。推荐使用 Groq 以获得更快的响应速度。cp .env.example .env# 至少配置以下其中一个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服务器)
-
启动MCP服务器: 在项目根目录下打开终端,运行以下命令启动MCP服务器:
python src/main_agentic.py mcp服务器启动后,它将通过标准输入/输出(stdio)等待MCP客户端的JSON-RPC请求。
-
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与计算