SuperAPI AI 工具集

tencentcloud-ocr-questionmarkagent

智能体与模型

查看项目

更新于 10-16 09:15

技能介绍

腾讯云试题批改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;需开通对应服务并配置密钥。价格与收费细节暂未提供。