Youtu-VL-4B-Instruct实战教程:用Python调用OpenAI兼容API实现自动阅卷

发布时间:2026/5/22 12:18:17

Youtu-VL-4B-Instruct实战教程:用Python调用OpenAI兼容API实现自动阅卷 Youtu-VL-4B-Instruct实战教程用Python调用OpenAI兼容API实现自动阅卷1. 引言作为一名教育工作者你是否经常被堆积如山的试卷压得喘不过气批改作业和试卷不仅耗时耗力还容易因为疲劳导致评分标准不一致。今天我将带你使用腾讯优图实验室开源的Youtu-VL-4B-Instruct多模态视觉语言模型通过Python调用其OpenAI兼容API实现一个高效的自动阅卷系统。这个教程将帮助你快速部署Youtu-VL-4B-Instruct模型掌握Python调用OpenAI兼容API的方法构建一个能识别手写答案并自动评分的系统了解如何优化模型以提高阅卷准确性2. 环境准备与模型部署2.1 硬件与软件要求在开始之前请确保你的系统满足以下最低配置GPUNVIDIA显卡至少16GB显存如RTX 4090内存16GB以上磁盘空间30GB可用空间操作系统Linux推荐Ubuntu 20.04Python3.8或更高版本2.2 快速部署模型如果你使用CSDN星图AI镜像模型已经预装并配置好。只需简单几步即可启动服务# 查看服务状态 supervisorctl status # 如果服务未运行启动它 supervisorctl start youtu-vl-4b-instruct-gguf服务启动后默认会在7860端口提供WebUI和API服务。你可以通过浏览器访问http://localhost:7860来测试Web界面是否正常工作。3. 自动阅卷系统核心功能实现3.1 试卷图片预处理在调用API之前我们需要对试卷图片进行预处理import cv2 import numpy as np def preprocess_exam_paper(image_path): # 读取图片 img cv2.imread(image_path) # 转换为灰度图 gray cv2.cvtColor(img, cv2.COLOR_BGR2GRAY) # 二值化处理 _, binary cv2.threshold(gray, 150, 255, cv2.THRESH_BINARY_INV) # 去除噪点 kernel np.ones((3,3), np.uint8) processed cv2.morphologyEx(binary, cv2.MORPH_OPEN, kernel) return processed3.2 调用API识别手写答案现在我们来编写调用Youtu-VL-4B-Instruct API的核心代码import base64 import httpx from PIL import Image import io def recognize_handwriting(image_path, question_text): # 预处理图片 processed_img preprocess_exam_paper(image_path) # 将处理后的图片转换为base64 _, buffer cv2.imencode(.jpg, processed_img) img_b64 base64.b64encode(buffer).decode(utf-8) # 构建API请求 response httpx.post( http://localhost:7860/api/v1/chat/completions, json{ model: Youtu-VL-4B-Instruct-GGUF, messages: [ {role: system, content: You are an exam grading assistant.}, {role: user, content: [ {type: image_url, image_url: {url: fdata:image/jpeg;base64,{img_b64}}}, {type: text, text: f识别图片中的手写答案并判断是否正确。题目是{question_text}} ]} ], max_tokens: 1024 }, timeout120 ) return response.json()[choices][0][message][content]3.3 自动评分系统实现基于识别结果我们可以构建一个简单的评分系统def auto_grade_exam(answer_sheet, answer_key): answer_sheet: 字典包含题目编号和对应的图片路径 answer_key: 字典包含题目编号和标准答案 results {} total_score 0 for q_num, img_path in answer_sheet.items(): question f第{q_num}题{answer_key[q_num][question]} correct_answer answer_key[q_num][answer] # 调用API识别答案 recognition_result recognize_handwriting(img_path, question) # 简单评分逻辑 if correct_answer.lower() in recognition_result.lower(): score answer_key[q_num][points] results[q_num] {score: score, feedback: 回答正确} else: score 0 results[q_num] {score: score, feedback: f回答错误正确答案是{correct_answer}} total_score score results[total_score] total_score return results4. 完整示例数学试卷自动批改让我们通过一个具体的例子来演示如何使用这个系统批改数学试卷。4.1 准备试卷和答案假设我们有一份简单的数学试卷包含3道题目answer_sheet { 1: math_q1.jpg, 2: math_q2.jpg, 3: math_q3.jpg } answer_key { 1: { question: 计算15 27等于多少, answer: 42, points: 5 }, 2: { question: 解方程2x 5 15x等于多少, answer: 5, points: 10 }, 3: { question: 圆的面积公式是什么, answer: πr², points: 5 } }4.2 执行自动批改grading_results auto_grade_exam(answer_sheet, answer_key) # 打印批改结果 for q_num, result in grading_results.items(): if q_num ! total_score: print(f题目{q_num}: {result[feedback]} 得分: {result[score]}) print(f\n总分: {grading_results[total_score]})4.3 结果分析与优化在实际使用中你可能会发现模型对某些手写体的识别不够准确。这时可以考虑以下优化方法增加预处理步骤更精细的图像处理可以提高识别率提供更多上下文在问题描述中加入更多提示信息后处理逻辑对模型的输出进行二次校验和修正多模型投票结合多个OCR模型的识别结果提高准确性5. 高级功能扩展5.1 支持多种题型我们的系统可以轻松扩展以支持更多题型def recognize_multiple_choice(image_path, options): # 构建特定于选择题的提示词 prompt f这是一道选择题请识别图片中被勾选的选项。可选答案有{, .join(options)} return recognize_handwriting(image_path, prompt)5.2 支持作文评分对于主观题如作文我们可以调整提示词让模型提供更细致的评价def grade_essay(image_path, topic): prompt f这是一篇关于{topic}的作文请根据以下标准评分 1. 内容相关性0-30分 2. 语言表达0-30分 3. 逻辑结构0-20分 4. 创新性0-20分 请给出总分和详细的评语。 return recognize_handwriting(image_path, prompt)5.3 批量处理功能对于大量试卷我们可以实现批量处理import os def batch_grade_exams(exam_folder, answer_key): results {} # 遍历文件夹中的所有试卷 for student_file in os.listdir(exam_folder): if student_file.endswith(.jpg) or student_file.endswith(.png): student_id student_file.split(.)[0] answer_sheet { 1: os.path.join(exam_folder, f{student_id}_q1.jpg), 2: os.path.join(exam_folder, f{student_id}_q2.jpg), 3: os.path.join(exam_folder, f{student_id}_q3.jpg) } results[student_id] auto_grade_exam(answer_sheet, answer_key) return results6. 总结与建议通过本教程我们实现了一个基于Youtu-VL-4B-Instruct的自动阅卷系统。这个系统可以自动识别手写答案并与标准答案比对对客观题进行自动评分对主观题提供评价建议支持批量处理提高效率在实际应用中我有以下建议逐步引入可以先用于客观题批改再扩展到主观题人工复核对于重要考试建议保留人工复核环节持续优化根据实际使用情况调整提示词和评分逻辑结合其他工具可以与其他教育技术工具集成形成完整解决方案Youtu-VL-4B-Instruct的强大多模态能力为教育自动化提供了新的可能性。虽然目前的系统还有改进空间但它已经能够显著减轻教师的工作负担。随着模型的不断优化自动阅卷的准确性和适用范围还将进一步提高。获取更多AI镜像想探索更多AI镜像和应用场景访问 CSDN星图镜像广场提供丰富的预置镜像覆盖大模型推理、图像生成、视频生成、模型微调等多个领域支持一键部署。

相关新闻