编程

TencentCloud QuestionMark OCR

试用

腾讯云试题批改Agent(SubmitQuestionMarkAgentJob/DescribeQuestionMarkAgentJob)接口调用技能。当用户需要对试卷图片或试题图片中的K12试卷或试题进行自动批改、手写答案识别、知识点分析时,应使用此技能。支持整卷图片批改和单题图片批改,提供题目切题、正误判定、...

它能做什么

腾讯云试题批改Agent (SubmitQuestionMarkAgentJob / DescribeQuestionMarkAgentJob)

技能文档

腾讯云试题批改Agent (SubmitQuestionMarkAgentJob / DescribeQuestionMarkAgentJob)

用途

调用腾讯云OCR试题批改Agent接口,面向K12教育场景的试题批改产品,支持整卷/单题端到端处理(试卷切题+题目批改+手写坐标回显),聚焦试题批改(含手写答案)和试题解析(不含手写答案)。精准输出题目、正误判定、答案对比、错误分析及知识点等结构化评估结果。低年级算式批改效果优于线上数学作业批改。

核心能力:

  • 异步双接口模式:Submit 提交任务获取 JobId → Describe 轮询查询结果(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) 参数

参数类型必填说明
ImageBase64str否(二选一)图片/PDF的Base64值,编码后不超过10M,分辨率建议600*800以上,支持PNG/JPG/JPEG/BMP/PDF格式
ImageUrlstr否(二选一)图片/PDF的URL地址,下载时间不超过3秒。都提供时只使用ImageUrl。建议存储于腾讯云
PdfPageNumberintPDF页码,仅支持单页识别,默认1
BoolSingleQuestionbool是否单题批改(跳过切题),默认false
EnableDeepThinkbool是否开启深度思考(更深层推理,速度更慢),默认false
QuestionConfigMapstr题目信息输出配置(JSON字符串),可选key:KnowledgePoints(输出知识点)/TrueAnswer(输出正确答案)/ReturnAnswerPosition(输出手写答案坐标)
ReferenceAnswerstr单题批改时的参考答案,仅单题时有效,多题时不生效

查询任务 (DescribeQuestionMarkAgentJob) 参数

参数类型必填说明
JobIdstr任务唯一ID,由Submit接口返回,长度不超过32字符
UserAgentstr请求来源标识(可选),用于追踪调用来源,统一固定为Skills

输出格式

识别成功后返回 JSON 格式结果:

格式化输出模式(默认)

{
  "任务ID": "1410885500986064896",
  "任务状态": "DONE",
  "切题数量": "2",
  "旋转角度": 0.0,
  "批改结果": [
    {
      "题号": 1,
      "题干": "1. 小琪在做作业时发现有一道题的一部分被墨水遮住了...",
      "子题": [
        {
          "题号": "1-1",
          "题干": "(1)小琪猜测,墨水遮住的内容是"2a",请你根据小琪的猜测完成计算;",
          "答案列表": [
            {
              "手写答案": "\\frac{2}{a-1}...",
              "是否正确": false,
              "答案分析": "首先将除法转化为乘法,对分子分母因式分解后约分...",
              "正确答案": "...",
              "知识点": ["分式运算", "因式分解"],
              "答案坐标": [113, 648, 558, 648, 558, 698, 113, 698]
            }
          ]
        }
      ]
    }
  ],
  "RequestId": "xxx"
}

原始输出模式(--raw)

{
  "JobId": "1410885500986064896",
  "JobStatus": "DONE",
  "ErrorCode": "",
  "ErrorMessage": "",
  "Angle": 0.0,
  "MarkInfos": [
    {
      "MarkItemTitle": "1. 小琪在做作业时...",
      "AnswerInfos": [],
      "MarkInfos": [
        {
          "MarkItemTitle": "(1)小琪猜测...",
          "AnswerInfos": [
            {
              "HandwriteInfo": "\\frac{2}{a-1}...",
              "IsCorrect": false,
              "AnswerAnalysis": "首先将除法转化为乘法...",
              "RightAnswer": "",
              "KnowledgePoints": [],
              "HandwriteInfoPositions": [113, 648, 558, 648, 558, 698, 113, 698]
            }
          ],
          "MarkInfos": []
        }
      ]
    }
  ],
  "RequestId": "xxx"
}

响应数据结构说明

SubmitQuestionMarkAgentJob 响应

参数类型说明
JobIdstr任务唯一ID,用于查询结果
QuestionInfolist of QuestionInfo切题题目边框坐标列表(BoolSingleQuestion=true时为空)
QuestionCountstr切题数量,作为计费题目数总量
RequestIdstr唯一请求ID

DescribeQuestionMarkAgentJob 响应

参数类型说明
JobStatusstr任务状态:WAIT(等待中)/RUN(执行中)/FAIL(失败)/DONE(成功)
ErrorCodestr任务执行错误码(非FAIL时为空)
ErrorMessagestr任务执行错误信息(非FAIL时为空)
Anglefloat图片旋转角度(角度制),水平方向为0,顺时针为正
MarkInfoslist of MarkInfo试题批改信息
RequestIdstr唯一请求ID

MarkInfo 结构(嵌套递归):

字段类型说明
MarkItemTitlestr题目的题干信息
AnswerInfoslist of AnswerInfo批改答案列表(按从左到右、从上到下排列)
MarkInfoslist of MarkInfo嵌套子题信息(无子题则为空)

AnswerInfo 结构:

字段类型说明
HandwriteInfostr手写答案内容(如选择题的手写选项、填空题的手写内容)
IsCorrectbool答案是否正确
AnswerAnalysisstr答案分析结果
HandwriteInfoPositionslist of int答案区域4角点坐标(长度8数组:左上/右上/右下/左下),需配置ReturnAnswerPosition。可能返回null
RightAnswerstr正确答案内容,需配置 QuestionConfigMap 的 TrueAnswer 为 true
KnowledgePointslist of str知识点内容,需配置 QuestionConfigMap 的 KnowledgePoints 为 true。可能返回null

QuestionInfo 结构:

字段类型说明
Anglefloat旋转角度
Heightint预处理后图片高度
Widthint预处理后图片宽度
ResultListlist of ResultList文档元素(可能返回null)
OrgHeightint输入图片高度
OrgWidthint输入图片宽度
ImageBase64str预处理后的图片base64编码

错误码说明

错误码含义
FailedOperation.DownLoadError文件下载失败
FailedOperation.ImageDecodeFailed图片解码失败
FailedOperation.ImageSizeTooLarge图片尺寸过大,请确保编码后不超过10M
FailedOperation.OcrFailedOCR识别失败
FailedOperation.PDFParseFailedPDF解析失败
FailedOperation.UnKnowError未知错误
FailedOperation.UnKnowFileTypeError未知的文件类型
FailedOperation.UnOpenError服务未开通,请先在腾讯云控制台开通试题批改Agent服务
InvalidParameterValue.InvalidParameterValueLimit参数值错误
LimitExceeded.TooLargeFileError文件内容太大
ResourceUnavailable.InArrears账号已欠费
ResourceUnavailable.ResourcePackageRunOut账号资源包耗尽
ResourcesSoldOut.ChargeStatusException计费状态异常

重要业务逻辑

  1. 异步双接口模式:Submit 提交任务 → Describe 轮询,JobStatus 为 DONE/FAIL 时完成
  2. Submit 计费,Describe 不计费
  3. ImageBase64 和 ImageUrl 必须提供其一,都提供时只使用 ImageUrl
  4. 支持格式:PNG/JPG/JPEG/BMP/GIF/WEBP/HEIC/TIFF/HEIF 及 PDF
  5. PdfPageNumber 必须为正整数,仅支持单页识别
  6. BoolSingleQuestion=true 时跳过切题,直接单题批改
  7. QuestionConfigMap 示例:{"KnowledgePoints":true,"TrueAnswer":true,"ReturnAnswerPosition":false}
  8. ReferenceAnswer 仅单题时有效,多题时不生效
  9. JobId 长度不超过32字符
  10. 默认接口请求并发限制:10题/分钟
  11. 建议图片存储于腾讯云COS以获得更高的下载速度和稳定性
  12. 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```

相关技能

诊断生产力系统反复失效的根因,给出最小干预——容量测算、瓶颈定位、可靠的本地记录。

作者 Iván854 次安装69 星标

按用户明确指令,在得到大脑(Get笔记)中保存、搜索并管理笔记与知识库。

作者 iswalle763 次安装66 星标

从 API 文档、OpenAPI 规范、curl 示例或脚本搭建可在任意仓库运行的持久化 CLI。

作者 OpenAI27.5k 星标

通过迭代式评测循环创建、修改并基准测试 agent 技能。

作者 Anthropic177.2k 星标

figma-use

官方

让代理在 Figma 文件里运行 JavaScript,读写节点与变量。

作者 OpenAI27.5k 星标

按 Microsoft 最新文档规范选用 ASP.NET Core 应用模型与中间件。

作者 OpenAI27.5k 星标

zt1314p-design 的更多技能

浏览全部技能

腾讯云通用票据识别高级版(VatInvoiceOCR)接口调用技能。当用户需要识别发票图片中增值税专用发票、增值税普通发票、增值税电子专票、增值税电子普票、电子发票(普通/增值税专用)的全字段信息时,应使用此技能。支持识别发票图片中的发票代码、发票号码、开票日期、合计金额、校验码、税率、合计税额、价税合计、购买方...

作者 zt1314p-design24 次安装

腾讯云实时文档抽取Agent(ExtractDocAgent)接口调用技能。当用户需要从图片或PDF中按自定义字段名称进行结构化信息抽取时,应使用此技能。支持自定义字段名称、字段类型(KV对或表格字段)和字段提示词,实现灵活的文档信息提取。适用于合同、发票、报告等各类文档的结构化数据抽取场景。

作者 zt1314p-design27 次安装

腾讯云通用文字识别(高精度版)(GeneralAccurateOCR) 技能包。当用户发送/粘贴图片、提供图片URL、或要求识别图片中的文字时,应自动调用此技能。支持图像整体文字的检测和识别,支持中文、英文、中英文、数字和特殊字符号的识别,并返回文字框位置和文字内容。适用于文字较多、版式复杂、对识别准召率要求较高...

作者 zt1314p-design60 次安装1 星标

腾讯云表格识别v3(RecognizeTableAccurateOCR)接口调用技能。当用户需要从表格图片或PDF中识别常规表格、无线表格、多表格的内容,提取每个单元格的文字信息,或将表格图片识别结果导出为Excel文件时,应使用此技能。支持中英文表格图片、旋转表格图片、嵌套表格图片等复杂场景,识别效果优于表格识...

作者 zt1314p-design32 次安装

企业财报三表(资产负债表 / 利润表 / 纳税申报表)勾稽检查技能包。当用户上传财报PDF/图片、或要求进行财报审核、三表勾稽校验时,应自动调用此技能。支持从财报PDF/图片中结构化抽取三表关键数据,自动统一单位(万元)与币种(必要时按实时汇率折算为CNY),执行时间一致性/字段完整性/核心税会差异/跨表校验,并...

作者 zt1314p-design12 次安装

腾讯云行驶证识别(VehicleLicenseOCR)接口调用技能。当用户需要识别行驶证图片主页(车牌号码、车辆类型、所有人、住址、使用性质、品牌型号、识别代码、发动机号、注册日期、发证日期)或副页(号牌号码、档案编号、核定载人数、总质量、整备质量、核定载质量、外廓尺寸、准牵引总质量、备注、检验记录)信息时,应使...

作者 zt1314p-design25 次安装