【案例共创】基于华为开发者空间-云开发环境(容器)与Versatile Agent构建AI自动评分助手
本案例面向高校/培训机构等教学场景,基于华为开发者空间云开发环境(容器) + Versatile Agent + MaaS 大模型服务,构建一个可落地的 AI 作业自动评分系统。系统能够根据老师给出的作业要求与标准答案,对学生提交的答案进行自动评分(0–100 分,整数)。自动生成结构化点评,包括优点、问题和改进建议。支持多题目、多批量作业的统一管理,减轻教师批改压力。
最新案例动态,请查阅【案例共创】基于华为开发者空间-云开发环境(容器)与Versatile Agent构建AI自动评分助手。小伙伴们快来进行实操吧!
案例简介:本案例面向高校/培训机构等教学场景,基于华为开发者空间云开发环境(容器) + Versatile Agent + MaaS 大模型服务,构建一个可落地的 AI 作业自动评分系统。系统能够根据老师给出的作业要求与标准答案,对学生提交的答案进行自动评分(0–100 分,整数)。自动生成结构化点评,包括优点、问题和改进建议。支持多题目、多批量作业的统一管理,减轻教师批改压力。
本案例由开发者:tmq244提供
一、概述
1.1 适用对象
- 个人开发者
- 高校学生
1.2 案例流程
本案例面向高校/培训机构等教学场景,基于华为开发者空间云开发环境(容器) + Versatile Agent + MaaS 大模型服务,构建一个可落地的AI作业自动评分系统。系统能够:
- 根据老师给出的作业要求与标准答案,对学生提交的答案进行自动评分(0–100 分,整数)。
- 自动生成结构化点评,包括优点、问题和改进建议。
- 支持多题目、多批量作业的统一管理,减轻教师批改压力。
本文将从场景与痛点、方案架构、环境准备、开发与部署步骤、功能验证等方面,完整展示如何在华为云上快速搭建一个可用的AI作业自动评分系统。
说明:
- 教师在 前端页面/管理端 录入或上传:
- 作业题目说明
- 本次作业的“评分标准 / 知识点要求”
- 官方答案或参考答案
- 学生通过页面/系统提交自己的作业答案。
- 后端服务(运行在 华为开发者空间云开发环境 中)将:
- 教师要求 + 标准答案 + 学生答案
- 封装为 Prompt 调用 Versatile Agent(绑定大模型 MaaS)。
- Versatile Agent 根据预先配置的 系统提示词,输出:
- 0–100 的整数分数
- 结构化评语(优点、问题、改进建议)
- 后端将结果存储并返回给前端展示。
1.3 资源总览
本案例预计花费1元。
| 资源名称 | 规格 | 单价(元) | 时长(分钟) |
|---|---|---|---|
| 华为开发者空间 - 云开发环境(容器) | 鲲鹏通用计算增强型 kc1 | 2vCPUs | 4G | HCE | 免费 | 90 |
| 华为开发者空间 - Versatile Agent平台 | 系统标配 | 免费 | 90 |
| 华为开发者空间 - DeepSeek-R1/V3千万Tokens代金券 | DeepSeek-R1-64K/DeepSeek-V3-64K | 1.00 | 90 |
二、环境和资源准备
2.1 创建云开发环境(容器)
参考案例《华为开发者空间 - 云开发环境(容器)IDE插件远程连接操作指导》中的“二、云开发环境IDE插件远程连接操作指导”的内容,完成“1. 安装插件” ~ “4. 连接”章节步骤。完成连接之后的状态:
参考“5. 端口转发”创建8082端口转发。
2.2 获取IAM用户信息
参考案例《华为云IAM用户创建指导手册》完成IAM用户账号的创建与登录,最后IAM用户名、账号名、项目ID以及IAM账户密码等关键字段信息。
注:
- 本案例使用华北-北京四对应的项目ID。
- 在创建用户时,访问方式勾选编程访问。
三、作业评分系统
3.1 创建Versatile Agent应用
参考案例《华为云MaaS平台商用大模型Tokens领取使用指导》中“二、 领取MaaS平台商用大模型Tokens”和“3.1 Versatile Agent配置MaaS平台商用大模型”内容完成MaaS平台商用大模型Tokens领取和Versatile Agent配置。
在华为开发者空间 - Versatile Agent开发平台,选择智能体 > 单智能体应用页签,点创建应用。
然后参考如下样例,创建AI作业评分系统单智能体应用:
- 选择创建类型:
单智能体应用 - 应用名称:
AI作业评分系统 - 应用描述:
一个简单的作业自动AI评分系统agent,用户输入评分标准和答案后,AI自动进行评分。
完成上述配置后,点立即创建。
在AI作业评分系统应用配置页面,右上角模型选择MaaS平台下的DeepSeek-R1-64K,调度选择模型优先。然后参考如下样例配置提示词:
你现在扮演一名严谨型作业评分员 A,根据老师给出的作业要求,对学生答案进行打分和点评。
下面是本次作业的要求和答案以及学生提交的作业
请你按照以下要求评分与点评:
1. 评分标准
重点考察:是否符合题意、关键知识点是否完整、推理是否正确。
分数范围:0–100 分,必须给出一个整数。
2. 输出格式(必须严格遵守)
分数:<数字>/100 评语: 1)优点:…… 2)问题:…… 3)改进建议:……
3. 其他要求
只根据上面给出的作业要求和答案进行判断,不要杜撰题目外的信息。
评语尽量简洁、具体,可操作,不要客套话,不要重复题目内容。
不要说明你的身份,也不要输出多余的前后缀文字
配置完后在页面右侧输入如下问题,测试模型。
【作业要求】 用自己的话说明什么是“二分查找算法”,并给出它在有序数组上的时间复杂度分析。要求:
1. 描述算法的基本思想;
2. 说明对输入数据的前提条件;
3. 给出时间复杂度并简单解释原因。 满分:100 分。
【标准答案】
基本思想: 二分查找在有序数组中查找目标值,每次比较中间元素与目标值:
若相等则查找成功;
若目标值小于中间元素,则在左半部分继续查找;
若目标值大于中间元素,则在右半部分继续查找。 不断缩小查找区间,直到找到或区间为空。
前提条件: 查找对象必须是有序的顺序存储结构(通常是有序数组)。
时间复杂度: 时间复杂度为 O(log n),因为每一步都把搜索区间缩小为原来的一半,最多进行约 log₂n 次比较。
【学生答案】 二分查找就是从中间开始找,如果中间的数不是我们要的,就往两边继续找,直到找到为止。 它适合在数组里找数,速度很快。 时间复杂度是 O(n),因为最多要把所有元素都看一遍。
模型分析,并返回正确答案。点右上角的发布按钮,如下图编辑发布信息,然后点发布。
进入发布管理页面,网页栏点发布,发布完后的状态如下。
发布完成之后,选择API调用页签,在此处可获取API调用的的url。
3.2 获取智能评分助手项目代码
完成VS Code远程连接云开发环境(容器)后,点击Source Control图标,然后点Initialize Repository。
点CHANGES右侧的 ··· 图标,在下拉菜单中选择Clone。
输入代码仓地址,Clone from URL:git clone https://gitcode.com/sinat_41661654/AI-Scoring.git
选择代码仓目录:/workspace/python/,点Select as Repository Destination。
然后点Open,将此目录设置为本地代码仓。
加载结束后的状态如下:
3.3 项目工程架构
3.3.1 业务场景介绍
- 典型教学场景:
- 大班授课(例如 100+ 学生),期末/平时作业量大。
- 作业内容以简答题、简要论述题、代码题为主。
- 主要痛点:
- 老师手工评分耗时长、主观性强、难以及时反馈。
- 很难对每个学生给出有针对性的“优点/问题/改进建议”。
3.3.2 目标与价值
- 目标:
- 将 作业评分流程自动化:老师提供“作业要求 + 参考答案/评分要点”,AI 自动打分与点评。
- 评分规则 可控可调,保证“符合题意、关键知识点完整、推理是否正确”等核心维度。
- 价值:
- 大幅降低教师批改工作量,提升反馈速度。
- 帮助学生快速了解自己作业中的不足,提升学习效果。
3.3.3 总体架构
后端框架:使用 Flask (app = Flask(__name__)) 提供 Web 服务。
前端展示:使用 HTML/CSS (Tailwind CSS) / JavaScript 构建了一个单页面的仪表盘界面,内嵌了聊天窗口。
AI 集成:后端通过 HTTP 请求与远程的华为云 AI Agent 进行通信。
3.3.4 功能模块详解
- 基础配置与工具函数
依赖库:引入了 requests 处理 HTTP 请求,urllib3 处理 SSL 警告,uuid 生成唯一会话 ID。
Token 读取 (read_token_from_file):为了安全起见,认证所需的 Token 不直接写在代码里,而是从本地文件 token.txt 中读取。
AI Agent 调用核心 (call_agent):
- 功能:这是代码的核心逻辑。它向华为云的特定 API 端点发送 POST 请求。
- 流式处理:使用了
stream=True和iter_lines。代码设计用于处理流式响应 (SSE)(即 AI 一个字一个字吐出的效果),但在这里它将流式数据拼接成完整字符串 (full_content) 后再一次性返回给前端。 - 容错:包含对 Token 缺失、网络错误、JSON 解析错误的异常处理。
- Web 路由 (Routes)
主页路由 (@app.route('/')):
-
前端技术栈:
1)样式:使用 Tailwind CSS CDN,快速构建现代化的 UI(紫色/蓝色渐变风格)。
2)图标:使用 FontAwesome。
3)交互:包含原生 JavaScript。
-
页面内容:
1)仪表盘:展示了“作业提交”、“AI智能评分”、“成绩统计”等功能
2)悬浮聊天窗:页面右下角有一个 AI 助手图标,点击可展开聊天界面。
3)JavaScript 逻辑:负责监听用户输入,通过
fetchAPI 将消息发送给自家的后端/api/agent接口,并将返回结果显示在聊天气泡中。
API 接口路由 (@app.route('/api/agent')):
-
功能:作为前端和华为云 AI 之间的中间层(Proxy)。
-
流程:
1)接收前端发来的 JSON 数据(用户消息)。
2)生成或复用
conversation_id。3)调用内部的
call_agent函数去请求真正的 AI 服务。4)将简单的内存级对话历史记录在全局变量
conversations字典中。5)将 AI 的回复以 JSON 格式返回给前端。
- 代码逻辑流程图解
3.4 部署智能评分助手项目
3.4.1 安装部署依赖
- 打开VS Code命令行窗口,创建并激活虚拟环境
python -m venv dev_venv
source dev_venv/bin/activate
- 继续执行命令,安装requests和flask
pip3 install requests flask
3.4.2 修改项目配置
- 配置获取Token鉴权
Agent API调用需要通过用户Token进行用户鉴权,所以接口调用前,需要先获取用户的Token。
注意:华为账号不支持直接获取账号Token,华为账号获取Token需创建一个IAM用户并授予该用户必要的权限,使用创建的IAM用户名和密码,获取IAM用户Token。IAM用户名和密码,我们已经在“2.2 获取IAM用户信息”中获取。
在SmartOfficeAssistant文件夹下,查看编辑get_token.py文件。
注意:
- MAIN_USER:替换成“2.2 获取IAM用户信息”中获取的账号名;
- IAM_USER:替换成“2.2 获取IAM用户信息”中获取的IAM用户名;
- PROJECT_ID:替换成“2.2 获取IAM用户信息”中获取的华北-北京四区域对应的项目ID;
- IAM_PASSWORD:替换成“2.2 获取IAM用户信息”中创建用户时,设置的IAM账号密码。
完成上述配置后,在VS Code命令行中输入如下指令,get_token.py自动生成token并被保存在token.txt文件中。
python get_token.py
- 修改AI作业评分系统应用URL
打开main.py,将url参数替换成“3.1 创建Versatile Agent应用”中最后获取的url。
3.5 工程运行
在VS Code命令行中输入如下指令,启动程序:
python main.py
程序启动成功,浏览器访问:http://127.0.0.1:8082/。
右下角打开AI评分助手,并输入“3.1 创建Versatile Agent应用”中的模型测试问题,控制台输出模型答复日志。
返回浏览器AI作业评分系统,答复回显正常。
3.6 释放资源
实验完成后,若无需继续后台运行,可操作云开发环境关机,避免持续消耗开发者空间核时。
在VS Code页面打开华为开发者空间插件,然后找到对应的云开发环境(容器),点Close关机。
至此,基于华为开发者空间-云开发环境(容器)+ Versatile Agent,构建AI轻量级智能评分助手的案例结束。各位小伙伴快来华为开发者空间实操体验吧!
反馈改进建议
如您在案例实操过程中遇到问题或有改进建议,可以到论坛帖评论区反馈即可,我们会及时响应处理,谢谢!
更多推荐



所有评论(0)