网易首页 > 网易号 > 正文 申请入驻

120秒请求里塞进35秒爬取和75秒模型调用,这笔账怎么算

0
分享至

Nakodo 的大部分功能都在后台跑,只有一个界面例外:品牌方新建推广活动时,输入一个域名,然后盯着屏幕等系统读完网站、写出一份简报。这是整个产品里唯一让用户对着加载圈等上几十秒的地方,也是唯一一处超时时间靠算出来、而不是靠猜出来的地方。

这套时间预算从外往里拆,一共分四层。

最外层:120秒的天花板

页面路由上直接声明了上限:maxDuration = 120。这个数字写在页面上而不是接口路由上,因为活儿是在这个页面调起的 Server Action 里干的。120秒不是对工作量的估算,而是团队愿意让用户干等的极限值的大约三倍——留出这么多余量,是为了让底下的每一层都能体面地失败,而不是被平台在半句话中间掐断。

被平台掐断是最难看的失败方式:自己的代码一行都没跑,没有报错,没有状态变更,也没有退款。这种情况得靠另一套机制兜底。

同一个数字还以注释形式出现在编排模块里,因为那是调用方最容易忘的地方。

爬取35秒,单页10秒

爬取环节拿到 35秒,每一次抓取单独限时 10秒。35加75等于110,落在120以内,剩下10秒留给数据库写入、套餐校验、审计记录这些杂事。

单次抓取10秒的超时写在 HTTP 模块里,但它故意不是唯一的限制——一个网站完全可以给你十个页面,每个都卡在9秒才回。

爬取内部还有两笔更小的预算,都是给"有更好、没有也能过"的东西准备的:站点地图 8秒,Logo 8秒。两者超时都直接落到 null。没有站点地图的品牌,或者站点地图由慢服务托管的品牌,照样能拿到简报。Logo 的请求在等待站点地图之前就已经发出,两者重叠执行;这场竞速输了,活动名字旁边就是没有 Logo 而已。

那个超时辅助函数只有九行,注释里写清了它不做什么:超时后 promise 本身并不会被取消。它在这里能用,只是因为底下每一步都有自己的 AbortSignal.timeout,被放弃的活儿会在自己的时限内死掉,而不是一直跑到函数冻结。把一个没有内部超时的东西包进 withTimeout,等于给泄漏起了个让人安心的名字。

模型调用75秒,而且只试一次

应用里每一次 AI 调用都走同一个函数,各任务的限额是一张带注释理由的表:

  • 站点研究:75秒,重试0次
  • 关键词:30秒,重试1次
  • 提案:25秒,重试1次
  • 评论、理由、外联、回复、建议:各30秒,重试0次
  • 客服:20秒,重试0次

表头的注释解释了这列看起来随意的数字背后的规则:每次调用单独限时,这样一次慢响应不会拖垮发起它的请求或定时任务。maxRetries 指的是 SDK 自身的重试,发生在超时、限流或服务器错误之后;一次超时的调用仍可能被计费。站点研究在用户眼皮底下跑,只给一次机会。评论、匹配说明、首封邮件和回复跑在任务队列里,队列本身已经会隔几分钟重试三次,所以它们每次尝试只给一次机会:最多三次调用而不是六次,限流也有时间缓过来。

两条可以搬到任何 LLM 代码库的经验

第一,重试只能属于一层。OpenAI 的 SDK 默认重试,任务队列也默认重试。放任不管,一次短暂的限流会变成六次快速连发,既费钱,又是对限流最糟糕的应对方式。所以跑在任务队列里的任务设成 maxRetries: 0,把队列那三次间隔几分钟的尝试当作重试策略;设成 maxRetries: 1 的,是外面完全没有重试的那些。

第二,超时是预算,不是愿望。客服回答给20秒,不是因为客服问题简单,而是因为有人在盯着一个小部件,超过20秒,诚实的做法是给他转人工。这个数字来自等待方的截止时间,不来自任务的难度。

喂给模型的输入同样有上限

超时只是延迟预算的一半,另一半是输入体积。页面读得短,已经存下来的页面在取出时还会再被限一次。单页文本上限 10000字符,关键页面最多 5个,首页 8000字符,普通页 5000字符,站点地图路径采样 150条,可读文本少于 300字符 就停手。

PAGE_TEXT_MAX 之所以和 PAGE_CHARS 分开存在,是因为踩过一个迟早会出的坑:爬取时页面被裁剪,但这些页面会被存下来,之后应用基于同一份研究写别的东西时还会再发一次。改了爬取的限额,旧记录永远保持旧尺寸。第二道上限在使用的那一刻才生效,所以几个月前写下的记录也撑不爆今天的预算。

MIN_SITE_TEXT 是反方向的一道限制。可读文本不足300字符,系统就停下,而不是花75秒把一片空白变成一份自信满满的简报。用户会收到一句具体的话:这个域名几乎没有我们能读到的文本,它可能需要 JavaScript 才能显示内容。

这只是八种爬取问题之一,每一种都有自己的说法:无效、未找到、被拦截、私有、超时、证书问题、内容为空、其他错误。首页抓取会依次尝试 https、带 www 的 https、以及纯 http,然后报告最有用的那个失败原因,而不是最后一个。

"我们找不到 acme.com,请检查拼写"和"acme.com 有安全证书问题",会把用户引向完全不同的动作。把两者都压成一句"研究失败",就是产品自己给自己挣来一张本不必要的客服工单。

超时必须免费

套餐里包含每月若干次网站研究,所以超时也是一次计费事件。每个计量动作都是账本里的一行,这让退款变成一次删除而不是一次扣减,普通失败路径就会花掉一次。

对已有活动重新跑研究则温和一些:失败会恢复活动之前的状态,包括暂停状态。品牌方对一个正在投放的活动重跑研究、结果撞上超时,不会丢掉已有的活动。

而当网站直接把我们拦在外面时,仍然有一条路可走——用户自己填的备注会作为额外一页加进去,在网站拦截我们的情况下,这些备注本身就够了。

没有报错的那种失败:三分钟

如果平台把函数杀掉,上面这一切都不会运行。请求消失,记录永远停在"研究中",用户盯着一个永远不会结束的加载圈。这种情况靠一个时钟而不是 catch 来处理:STALE_RESEARCH_MS = 3分钟。

三分钟就是120秒上限加一分钟余量,这是选这个数字唯一诚实的办法:它必须长于任何可能还活着的运行,否则恢复逻辑会去跟一个马上要成功的请求打架。恢复是一条 UPDATE,判断逻辑写成 SQL,一次语句就能把该用户所有卡住的活动处理完。然后是退款,一次带一小时窗口的删除,免得误伤更早的、不相关的运行。

这背后没有定时任务。它发生在用户下一次查看活动列表的时候,因为那正是卡住的活动开始变得重要、也正对着在意它的人的时刻。

整体形状

一个面向用户的截止时间,拆成若干命名常量,加起来小于它;每个"有更好"的东西允许单独失败;每个限额都配一句用户能照着做的话。这些数字迟早会过时。真正让它们改起来便宜的,是这笔账被写了下来。

特别声明:以上内容(如有图片或视频亦包括在内)为自媒体平台“网易号”用户上传并发布,本平台仅提供信息存储服务。

Notice: The content above (including the pictures and videos if any) is uploaded and posted by a user of NetEase Hao, which is a social media platform and only provides information storage services.

相关推荐
热点推荐
11万人挤爆广场!塞尔维亚超级集会力挺武契奇,多国首脑亲临站台

11万人挤爆广场!塞尔维亚超级集会力挺武契奇,多国首脑亲临站台

无情有思可
2026-10-17 20:01:39
医生发现:能活到85岁的前列腺人,基本在55岁,就已经不做6事了

医生发现:能活到85岁的前列腺人,基本在55岁,就已经不做6事了

健康之光
2026-10-18 08:50:21
莫大课堂事件升级!留俄中国学生递交联名请愿书,要求严惩展示旭日旗的同胞,拒绝接受其敷衍道歉

莫大课堂事件升级!留俄中国学生递交联名请愿书,要求严惩展示旭日旗的同胞,拒绝接受其敷衍道歉

火山詩话
2026-10-18 07:51:31
谢谢黄子韬,贡献出26年内娱的第一个笑话

谢谢黄子韬,贡献出26年内娱的第一个笑话

娱乐圈十三太保
2026-10-16 16:58:06
两位医生赴泰旅游身亡,网传遭谋杀、器官被摘除,单位通报

两位医生赴泰旅游身亡,网传遭谋杀、器官被摘除,单位通报

梅斯医学
2026-10-17 07:53:40
李国旭:重点表扬轮换球员;要相信梭鱼湾,大连队不掉链子

李国旭:重点表扬轮换球员;要相信梭鱼湾,大连队不掉链子

懂球帝
2026-10-17 22:25:00
11人正高、副高集体被撤销!倒查风暴来了!

11人正高、副高集体被撤销!倒查风暴来了!

测绘之家
2026-10-14 21:14:53
毛泽东和王稼祥相交43年,建国前主席询问:你愿当大使还是部长?

毛泽东和王稼祥相交43年,建国前主席询问:你愿当大使还是部长?

凡人侃史
2026-10-17 09:25:06
心源性猝死的人越来越多?再次强调:宁可吃猪肉,也别做5事

心源性猝死的人越来越多?再次强调:宁可吃猪肉,也别做5事

芹姐说生活
2026-10-09 22:47:28
热搜第一!张继科回应刘丁硕段位不够 刘丁硕删张继科微信:留着干嘛

热搜第一!张继科回应刘丁硕段位不够 刘丁硕删张继科微信:留着干嘛

念洲
2026-10-17 08:58:23
看看加拿大老人退休后的生活,再看看中国老人,真的没法比!

看看加拿大老人退休后的生活,再看看中国老人,真的没法比!

江启
2026-10-15 23:33:12
才喝一周,十年肝火就消了!连指甲竖纹都淡了不少!

才喝一周,十年肝火就消了!连指甲竖纹都淡了不少!

牛锅巴小钒
2026-10-15 01:46:08
听完毛岸英牺牲详情后,毛主席忽然问彭德怀:我的岸英是否真的勇敢?

听完毛岸英牺牲详情后,毛主席忽然问彭德怀:我的岸英是否真的勇敢?

谈古论今历史有道
2026-10-08 12:20:08
养路收费迎来大调整!人民日报定调,油车电车不用慌

养路收费迎来大调整!人民日报定调,油车电车不用慌

趣味萌宠的日常
2026-10-17 06:43:20
一个家庭最大悲哀,就是人到70多岁,却还在和外人随便说6件事!

一个家庭最大悲哀,就是人到70多岁,却还在和外人随便说6件事!

游戏收藏指南
2026-10-17 04:48:23
长影资深演员、配音演员隋桂凤去世,曾为数百部外国译制片配音

长影资深演员、配音演员隋桂凤去世,曾为数百部外国译制片配音

澎湃新闻
2026-10-17 18:12:27
重阳节|四首经典古诗,写尽了重阳节,写尽了人生

重阳节|四首经典古诗,写尽了重阳节,写尽了人生

诗词世界
2026-10-18 06:04:53
改籍叛国、卖队泄密?定居泰国执教的冯坤,因一句话实现口碑逆转

改籍叛国、卖队泄密?定居泰国执教的冯坤,因一句话实现口碑逆转

主宰未来
2026-09-24 15:32:39
“谷歌陈立人杀妻案”新进展:他想和前女友复合遭拒绝,不久后将妻子杀死

“谷歌陈立人杀妻案”新进展:他想和前女友复合遭拒绝,不久后将妻子杀死

江山挥笔
2026-10-13 23:10:02
华南虎没有灭绝?专家:如果还有,最可能在山西,不在广东福建

华南虎没有灭绝?专家:如果还有,最可能在山西,不在广东福建

掠影后有感
2026-10-17 09:52:00
2026-10-18 10:36:49
我是一个养虾人
我是一个养虾人
有态度网友ytd
211文章数 92关注度
往期回顾 全部

科技要闻

刘煜辉:99%的黄金分析师报告一钱不值

头条要闻

女生科目三没过出来发现教练走了 跟其语音听到麻将声

头条要闻

女生科目三没过出来发现教练走了 跟其语音听到麻将声

体育要闻

升级版杨瀚森再闯难关:当上开拓者第三中锋还得拼

娱乐要闻

李连杰回应抛妻弃女传闻,透露四个女儿关系

财经要闻

马斯克:美债问题只能靠AI和机器人解决

汽车要闻

星瑞L PLUS限时售价10.97万元起 开启智混3L时代

态度原创

本地
艺术
游戏
时尚
公开课

本地新闻

因新荣记出圈,这座浙东小城才是吃货天堂

艺术要闻

美到窒息!黛安笔下的午后“印象”,明媚又温柔,看完心情都亮了!

《幽灵线:东京》已加入GOG保存计划 取消服务集成

秋天衣服要越买越精,准备好这“三衣”,简单舒适又有品味

公开课

李玫瑾:为什么性格比能力更重要?

无障碍浏览 进入关怀版