腾讯云试题批改Agent技能用于调用腾讯云OCR的试题批改接口(SubmitQuestionMarkAgentJob / DescribeQuestionMarkAgentJob),面向K12教育场景,支持整卷或单题处理,聚焦试题批改(含手写答案)和试题解析。
用途
调用腾讯云OCR试题批改Agent接口,面向K12教育场景,支持整卷/单题端到端处理(试卷切题+题目批改+手写坐标回显),聚焦试题批改(含手写答案)和试题解析(不含手写答案)。输出题目、正误判定、答案对比、错误分析及知识点等结构化评估结果。低年级算式批改效果优于线上数学作业批改。
主要能力
- 异步双接口模式:Submit 提交任务获取 JobId,Describe 轮询查询结果,JobStatus 为 DONE/FAIL 时完成。
- 整卷批改:自动切题后逐题批改,返回每道题目的批改信息。
- 单题批改:跳过切题环节,直接对单题批改,支持传入参考答案。
- 深度思考:可选开启深度思考模式,进行更深层次推理分析(速度更慢)。
- 知识点输出:可配置输出题目关联的知识点信息。
- 正确答案输出:可配置输出题目的正确答案。
- 手写答案坐标:可配置输出手写答案在原图中的坐标位置。
- 多格式输入:支持 PNG、JPG、JPEG、BMP、GIF、WEBP、HEIC、TIFF、HEIF 及 PDF 格式。
使用时机
当用户提出以下需求时可触发此技能:对试卷图片/PDF进行自动批改;识别手写答案并判断正误;对K12试题进行批改分析;获取试题的知识点信息;获取试题的正确答案;对单道题目进行批改(含参考答案);涉及试卷切题、试题解析的场景。
环境要求
Python 3.6+;依赖 tencentcloud-sdk-python(通过 pip install tencentcloud-sdk-python 安装)。环境变量:TENCENTCLOUD_SECRET_ID(腾讯云API密钥ID)、TENCENTCLOUD_SECRET_KEY(腾讯云API密钥Key)。
使用方式
运行 scripts/main.py 脚本完成试题批改。该接口为异步接口,脚本会自动提交任务并轮询查询结果。
请求参数
提交任务 (SubmitQuestionMarkAgentJob):
- ImageBase64:str,否(与ImageUrl二选一),图片/PDF的Base64值,编码后不超过10M,分辨率建议600*800以上,支持PNG/JPG/JPEG/BMP/PDF格式。
- ImageUrl:str,否(与ImageBase64二选一),图片/PDF的URL地址,下载时间不超过3秒。都提供时只使用ImageUrl。建议存储于腾讯云。
- PdfPageNumber:int,否,PDF页码,仅支持单页识别,默认1。
- BoolSingleQuestion:bool,否,是否单题批改(跳过切题),默认false。
- EnableDeepThink:bool,否,是否开启深度思考(更深层推理,速度更慢),默认false。
- QuestionConfigMap:str,否,题目信息输出配置(JSON字符串),可选key:KnowledgePoints(输出知识点)/TrueAnswer(输出正确答案)/ReturnAnswerPosition(输出手写答案坐标)。
- ReferenceAnswer:str,否,单题批改时的参考答案,仅单题时有效,多题时不生效。
查询任务 (DescribeQuestionMarkAgentJob):
- JobId:str,是,任务唯一ID,由Submit接口返回,长度不超过32字符。
- UserAgent:str,否,请求来源标识(可选),用于追踪调用来源,统一固定为Skills。
输出格式
识别成功后返回 JSON 格式结果,提供格式化输出模式(默认)与原始输出模式(--raw)。格式化输出包含任务ID、任务状态、切题数量、旋转角度、批改结果与RequestId;批改结果内含题号、题干、子题(题号、题干、答案列表),答案列表内含手写答案、是否正确、答案分析、正确答案、知识点、答案坐标。原始输出包含JobId、JobStatus、ErrorCode、ErrorMessage、Angle、MarkInfos、RequestId;MarkInfos为嵌套递归结构,含MarkItemTitle、AnswerInfos、MarkInfos,AnswerInfo含HandwriteInfo、IsCorrect、AnswerAnalysis、RightAnswer、KnowledgePoints、HandwriteInfoPositions。
响应数据结构说明
SubmitQuestionMarkAgentJob 响应:JobId(任务唯一ID,用于查询结果)、QuestionInfo(切题题目边框坐标列表,BoolSingleQuestion=true时为空)、QuestionCount(切题数量,作为计费题目数总量)、RequestId(唯一请求ID)。
DescribeQuestionMarkAgentJob 响应:JobStatus(任务状态:WAIT/RUN/FAIL/DONE)、ErrorCode(非FAIL时为空)、ErrorMessage(非FAIL时为空)、Angle(图片旋转角度,角度制,水平方向为0,顺时针为正)、MarkInfos(试题批改信息)、RequestId(唯一请求ID)。
MarkInfo 结构(嵌套递归):MarkItemTitle(题目题干信息)、AnswerInfos(批改答案列表,按从左到右、从上到下排列)、MarkInfos(嵌套子题信息,无子题则为空)。
AnswerInfo 结构:HandwriteInfo(手写答案内容)、IsCorrect(答案是否正确)、AnswerAnalysis(答案分析结果)、HandwriteInfoPositions(答案区域4角点坐标,长度8数组:左上/右上/右下/左下,需配置ReturnAnswerPosition,可能返回null)、RightAnswer(正确答案内容,需配置TrueAnswer为true)、KnowledgePoints(知识点内容,需配置KnowledgePoints为true,可能返回null)。
QuestionInfo 结构:Angle(旋转角度)、Height(预处理后图片高度)、Width(预处理后图片宽度)、ResultList(文档元素,可能返回null)、OrgHeight(输入图片高度)、OrgWidth(输入图片宽度)、ImageBase64(预处理后的图片base64编码)。
错误码说明
FailedOperation.DownLoadError:文件下载失败;FailedOperation.ImageDecodeFailed:图片解码失败;FailedOperation.ImageSizeTooLarge:图片尺寸过大,请确保编码后不超过10M;FailedOperation.OcrFailed:OCR识别失败;FailedOperation.PDFParseFailed:PDF解析失败;FailedOperation.UnKnowError:未知错误;FailedOperation.UnKnowFileTypeError:未知的文件类型;FailedOperation.UnOpenError:服务未开通,请先在腾讯云控制台开通试题批改Agent服务;InvalidParameterValue.InvalidParameterValueLimit:参数值错误;LimitExceeded.TooLargeFileError:文件内容太大;ResourceUnavailable.InArrears:账号已欠费;ResourceUnavailable.ResourcePackageRunOut:账号资源包耗尽;ResourcesSoldOut.ChargeStatusException:计费状态异常。
重要业务逻辑
异步双接口模式:Submit 提交任务 → Describe 轮询,JobStatus 为 DONE/FAIL 时完成;Submit 计费,Describe 不计费;ImageBase64 和 ImageUrl 必须提供其一,都提供时只使用 ImageUrl;支持格式 PNG/JPG/JPEG/BMP/GIF/WEBP/HEIC/TIFF/HEIF 及 PDF;PdfPageNumber 必须为正整数,仅支持单页识别;BoolSingleQuestion=true 时跳过切题,直接单题批改;QuestionConfigMap 示例:{"KnowledgePoints":true,"TrueAnswer":true,"ReturnAnswerPosition":false};ReferenceAnswer 仅单题时有效,多题时不生效;JobId 长度不超过32字符;默认接口请求并发限制:10题/分钟;建议图片存储于腾讯云COS以获得更高的下载速度和稳定性;MarkInfo 为递归嵌套结构,可能存在多层子题。
调用示例
通过URL进行整卷批改(输出知识点和正确答案)
python scripts/main.py --image-url "https://example.com/exam_paper.jpg"
--question-config '{"KnowledgePoints":true,"TrueAnswer":true}'
通过URL进行单题批改(带参考答案)
python scripts/main.py --image-url "https://example.com/single_question.jpg"
--single-question --reference-answer "x=2"
开启深度思考模式
python scripts/main.py --image-url "https://example.com/exam.jpg" --enable-deep-think
通过文件路径进行批改(自动Base64编码)
python scripts/main.py --image-base64 ./exam_paper.png
批改PDF试卷(指定页码)
python scripts/main.py --image-base64 ./exam.pdf --pdf-page-number 2
输出原始JSON响应
python scripts/main.py --image-url "https://example.com/exam.jpg" --raw
指定地域和自定义轮询参数
python scripts/main.py --image-url "https://example.com/exam.jpg"
--region ap-beijing --poll-interval 3 --poll-timeout 300
适用场景
K12试卷或试题的自动批改、手写答案识别与正误判定、试题解析与知识点分析、单题批改(可传参考答案)等。
限制
该接口为异步接口,需先提交再轮询;PDF仅支持单页识别;默认并发限制为10题/分钟;图片编码后不超过10M;需开通对应服务并配置密钥。价格与收费细节暂未提供。