首页
学习
活动
专区
圈层
工具
发布
社区首页 >专栏 >作文批改 Agent 并发只有 2 篇/分钟,批量批改前先看清这道坎

作文批改 Agent 并发只有 2 篇/分钟,批量批改前先看清这道坎

原创
作者头像
gavin1024
发布于 2026-09-23 15:05:00
发布于 2026-09-23 15:05:00
1621
举报

摘要:

作文批改 Agent 的提交与查询接口限频均为 2 次/分钟,1000 次提交需要 500 分钟。这一限频对应的是异步任务队列式排程:提交匀速出队、查询按窗口分批、结果按班级交付复核,成本按次结算。

一、2 次/分钟是什么量级

排批改任务时,常会遇到一个看起来矛盾的现象:接口本身能跑通,量一上去却被限频挡住。要判断这是不是真问题、又该怎么排,得先把规格口径摆出来。作文批改 Agent 的接口口径集中在一张表里。

项目

口径

提交任务接口

SubmitMarkEssayAgentJob,并发限制 2 次/分钟

查询任务接口

DescribeMarkEssayAgentJob,并发限制 2 次/分钟

调用模式

异步任务:提交任务,再轮询查询结果

提交接口输入限制

Base64 编码后不超过 10M,分辨率建议 600×800 以上,图片下载时间不超过 3 秒,仅支持 PDF 单页识别

查询接口输入

仅传入 JobId,无图片入参

频率限制统计维度

API + 接入地域 + 子账号

换成时间更直观:按 2 次/分钟,提交 1000 次约需 500 分钟(8.3 小时),500 篇作文(按一篇一页、每页一次提交计)约需 250 分钟(4.2 小时);这还只是"提交"一个环节,不含轮询查询和教师复核的时间。

不过上面是按一篇一页的理想情况算的。由于提交接口仅支持 PDF 单页识别,一篇作文如果跨了多页,就要按页分别提交,实际提交次数会多于作文篇数,排程时应当按页数而不是篇数来估。

这里最容易误读的一点,是"2 次/分钟"不等于"同时只能批 2 篇"。它限制的是调用频率——每分钟能往里投多少次任务、能问多少次结果,而不是系统的处理能力。真正的批改由服务侧异步完成,限频更像是任务入口的节流阀:入口放多快,决定了任务以什么节奏进入处理流程。

二、批改类接口为什么采用低并发 + 异步任务设计

要理解这个限制,先要理解批改和识别在任务性质上的差别。识别类接口做的是"看图取字",一件相对独立、可以快速返回的工作,所以频率限制可以给到 5 次/秒这类量级。批改不一样:它要在文字基础上做逐字比对、语病定位、好词好句识别和建议生成,单篇处理的链路更长,返回时间天然更久。

如果批改做成同步接口,调用方就得一直开着连接等结果。等待时间一长,超时和重试会把请求量放大,服务侧的资源被大量占在等待上,反而拖慢整体。异步任务把这件事拆成两段:提交任务拿到一个 JobId,批改的时间交给服务侧;调用方按自己的节奏用查询接口取结果,连接不必一直挂着。这也是文档智能(Document AI)把作文批改 Agent 做成异步任务模式的原因。

限频定得低,还有一个更贴近使用场景的原因:它与教育场景的节奏是匹配的。作文批改的结果需要教师复核,如果提交速度远远超过复核速度,结果只会堆在系统里,并不会带来实际的教学收益。入口节流让任务量落在教师可以处理的区间内,比起追求提交速度,更符合批改这件事的实际用法。

三、批量批改的排程方案

知道限制在哪,排程就有了依据。以下四个环节是批量批改绕不开的。

3.1 任务队列:先入队,再匀速提交

不要把手上所有作文一次性打给提交接口。可行的做法是在本地建一个任务队列,把待批作文先入队,再按每分钟 2 次的节奏匀速出队提交。队列的价值有三个:提交速度可控,不会因为集中调用触发失败;失败的任务可以带回队列尾部重试,不丢件;每个任务的提交时间有记录,为后面的查询节奏提供依据。

队列还要记录任务的业务归属,也就是每篇作文对应哪个班级、哪个学生。批改结果是按任务返回的,如果提交时没把 JobId 和业务对象绑在一起,结果取回来之后还得靠文件名去猜,量一大就会乱。

3.2 轮询节奏:查询也要算进限频

提交完成后,用 DescribeMarkEssayAgentJob 按 JobId 查询结果。查询请求本身很轻,但它同样受 2 次/分钟的限频约束,所以不能用远快于这个节奏的定时任务去轮询全部任务。

比较稳的做法是按提交时间分批查询:记录每批任务的提交时刻,估算改动作业所需的时间窗口,到点后对这批任务逐条查询,每条查一次;仍处于处理中的任务重新排入下一轮等待。这样查询请求也能被统一节流,不会出现"提交排好了、查询却把限频占满"的情况。提交队列和查询队列共用一份节奏表,是这套流程能长期稳定运行的关键。

3.3 分线:看清限频的统计维度

限频额度不是账号全局共享的一个总数,而是按统计维度分开计算的:同一接口在不同子账号、不同接入地域下的调用量各自独立计数。这意味着按子账号分线是一条可用的排程思路——多个年级同时需要批改时,可以把任务分给不同子账号排队,各自占用自己的额度,不必挤在同一条队列上。

分线要注意两点。一是地域要一致,同一批任务放在同一个接入地域下统计,混着用会让额度核算变得复杂。二是分线只是把额度拆开计数,单条线的处理节奏仍然要按 2 次/分钟来排,线开得再多也不会让某一批任务提前拿到结果。

3.4 复核节奏:排程的终点不是"取回结果"

批量批改的排程终点,不是几百份结果同时回到系统里,而是结果以教师能处理的节奏交到教师手上。建议按班级分批闭环:一个班的作文提交并取回结果后,先交给该班教师复核,再启动下一个班。

这样安排有几个好处。教师每次面对的是一批熟悉的作文,复核时的判断更稳;教师在这一批里发现的问题可以及时修正下一批的提交规范,比如某些拍摄角度导致的识别偏差;整条链路的节奏是可控的,不会出现大批结果一次性堆在教师面前。

四、成本测算与额度使用

作文批改 Agent 的计量单位是次,付费口径分为后付费与预付费两种,另有免费额度可先用。

计费方式

规格

价格

折合单次

后付费

按实际提交量结算

0.42 元/次

0.42 元/次

预付费资源包

1000 次,有效期 1 年

490 元

0.49 元/次

预付费资源包

1 万次,有效期 1 年

4200 元

0.42 元/次

预付费资源包

10 万次,有效期 1 年

35000 元

0.35 元/次

预付费资源包

100 万次,有效期 1 年

300000 元

0.30 元/次

免费额度

1000 次/用户,开通时一次性发放

1 年内有效

不适用

把预付费各档折成单次成本,再与后付费摆在一起,档位选择才看得清。对照下来有一个容易被忽略的门槛:1000 次档的单次成本高于后付费,在这个量级下按量付费反而更省;1 万次档与后付费持平;单次成本真正低于后付费,要到 10 万次档才开始。所以资源包的选择依据是一年内能稳定提交的量级,量还不到就先走后付费,不必为了单价把额度买在账上等过期。

免费额度按次核减,对应的是接口调用,适合用来把整条链路先跑通:队列、轮询与复核这三段能否按预期衔接,只有走一遍完整调用才看得出来。它验证的是排程能不能跑顺,而不是单篇作文的批改效果。

五、总结

2 次/分钟的限制,实质上把批量作文批改从"能不能跑"变成了"怎么排":提交按队列匀速出队,查询按时间窗口分批拉取,任务可按子账号分线但单线节奏不变,结果按班级分批交给教师复核。把这条节奏跑顺之后,批改量就不再取决于接口能跑多快,而取决于教师能复核多少。

准备启动批量批改的团队,可以先按任务队列与分批轮询的思路搭一个最小流程,用作文批改 Agent 首次开通即发放的 1000 次免费额度(一年内有效)在一个班的真实作文上跑一遍,把提交间隔、查询窗口和复核时间测出来,再据此估算整学期的用量。确认排程跑顺、要放量之后,再对照 文档智能特惠活动 的折扣档位:作文批改 Agent 新用户首单低至 1 折、老用户下单低至 6 折,按用量选规格更划算。

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

目录
  • 摘要:
  • 一、2 次/分钟是什么量级
  • 二、批改类接口为什么采用低并发 + 异步任务设计
  • 三、批量批改的排程方案
    • 3.1 任务队列:先入队,再匀速提交
    • 3.2 轮询节奏:查询也要算进限频
    • 3.3 分线:看清限频的统计维度
    • 3.4 复核节奏:排程的终点不是"取回结果"
  • 四、成本测算与额度使用
  • 五、总结
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档