Metlivi 博客

游戏开发者如何预估长篇 AI 对话的成本

要预估游戏中长篇 AI 对话的成本,需统计完整玩家会话中使用的 Token,细分未缓存输入、已缓存输入和输出,然后套用所选模型的当前费率。最后,根据玩家在各对话长度下的实际会话数量进行加权。简短的提示词测试或单一的“平均”会话,往往会忽略后续轮次中重复发送的历史记录、缓存未命中以及异常超长的游戏会话。

2026年9月30日6 分钟阅读阅读、艺术与文化作者:Metlivi Editorial Team
第 1 节

1. 明确你要估算的统计单元

首先选择一个明确的统计单元:例如,每次对话会话的模型推理成本、每个活跃玩家日的成本,或每 1,000 次会话的成本。针对会话估算,要界定会话的开始与结束。一个实用的规则可以是“从第一次对话请求开始,直到 30 分钟内无请求为止”,但这个超时阈值只是一种统计口径,并非通用标准。记录下这一规则,以便其他开发者能够复现该估算。

统计模型请求次数,而不仅仅是玩家发送的消息数。单次交互可能会触发多次调用——例如,生成一次回复后紧接着进行单独的工具调用——而重试还会进一步增加调用次数。如果游戏使用了语音、图像输入、检索或工具,请将这些计入单独的成本字段,并记录它们关联的模型 Token。除常规文本 Token 费用外,服务商的定价可能还包含工具费用或特定模态的费率;例如,OpenAI 列出了单独的工具收费标准,并说明内置工具所使用的模型 Token 按所选模型的费率计费(OpenAI API 定价)。

第 2 节

2. 统计每次请求的实际 Token 数

对于每次调用,记录服务商、模型标识符、时间戳、会话标识符、请求目的、输入 Token 数、输出 Token 数,以及任何上报的已缓存 Token 或推理 Token 明细。捕获重试、错误、工具调用以及调用是否成功完成。除非出于明确且合理的业务目的,否则避免存储对话内容;对于成本预估而言,Token 总数和运行元数据通常就已经足够。

将已完成调用中由服务商上报的使用量作为主要统计依据。调用前预计算有助于测试提示词的构建,但它可能与最终的账单字段不一致。OpenAI 文档指出,上报的输出包含可见文本之外的 Token,例如某些格式化和工具结构 Token,并建议不要仅根据玩家看到的内容来预估输出(OpenAI Token 计数指南)。Google 的 Gemini 文档同样在用量元数据中对提示词、已缓存内容、候选输出和思考 Token 数量进行了区分(Gemini Token 指南)。

构建一个具有代表性的样本,涵盖新玩家、老玩家、长短不一的对话,以及生产环境中的提示词与工具配置。坚持以会话作为抽样单元:一个包含 40 轮的对话应保持作为一个累计成本的单一观察对象,而不是被拆解为 40 个独立的玩家会话。在原型设计阶段,一组固定的脚本化对话有助于对比提示词的变更;而在上线后,应以实际观测到的会话数据来驱动预测。

第 3 节

3. 考虑历史记录增长与上下文复用

在许多对话系统中,每次请求都包含当前用户轮次以及部分或全部对话历史。如果历史记录被反复重发,即便每次玩家的消息很短,输入 Token 也会随着轮次增加而增长。请统计发送给模型的实际请求载荷;除非实现方式确实在每次请求中都发送相同大小的内容,否则不要简单地将单轮提示词大小乘以轮数。

缓存改变了适用于符合条件的重复输入的费率;但这并不意味着整个对话完全免费,也不意味着持久会话就能保证命中缓存。OpenAI 将提示词缓存描述为对未更改提示词前缀的复用,并指出新输入仍需进行处理。其缓存诊断功能有助于度量缓存读取和未命中情况(OpenAI 提示词缓存指南)。Anthropic 同样区分了缓存写入与缓存读取,并公布了各自的费率与缓存有效期(Anthropic 定价与提示词缓存)。

在遥测数据中,当服务商提供明细时,请将未缓存输入 Token、已缓存输入 Token 和缓存写入 Token 分开记录。记录缓存命中次数除以符合条件的请求数,以及实际按缓存计费的输入 Token 比例。这两者回答的是不同的问题:如果重复的前缀很小,即便各请求的命中率很高,被缓存的 Token 占总 Token 的比例可能依然较低。缓存资格、最小限制、过期时间、提示词前缀稳定性以及模型支持情况均因服务商而异;计算节省成本时,应仅以用量数据确认的数额为准。

第 4 节

4. 通过透明的计算公式应用费率

对于按每百万 Token 计价的模型,单次会话成本的计算公式为:

会话成本 = (未缓存输入 × 输入费率 + 已缓存输入 × 已缓存输入费率 + 缓存写入 × 缓存写入费率 + 输出 × 输出费率) ÷ 1,000,000 + 其他适用费用

使用部署配置中所采用的确切模型、端点、模态、区域和服务梯度的费率。在编制预算之前,务必直接在服务商的价格页面上核对这些数据;费率和模型目录可能会发生变动。对于按存储 Token 和时长计费的缓存,需计入存储费用。例如,Gemini 公布的定价列出了付费使用的 Token 类别以及特定上下文缓存配置的每小时存储单价,而其账单文档将输入、输出、已缓存 Token 和缓存存储时长均列为计费因素(Gemini 定价;Gemini 账单)。

一个推演计算示例可以让假设更加直观。仅用于说明:假设某次会话中测得的调用包含 18,000 个未缓存输入 Token、12,000 个已缓存输入 Token 以及 6,000 个输出 Token。按照截至 2026 年 12 月 31 日公布的 Gemini 3.8 Flash 付费梯度费率计算——每百万输入 Token 0.75 美元,每百万缓存 Token 0.075 美元,每百万输出 Token 3.75 美元——得出 0.0135 美元 + 0.0009 美元 + 0.0225 美元,即在计入任何适用的缓存存储费或其他费用之前为 0.0369 美元。该示例假设列出的已缓存 Token 均按缓存费率计费,且不包含测得总量之外的任何初始缓存创建成本。这些费率具有时效性,在预估后续周期的成本时应重新核对(Gemini 定价)。

第 5 节

5. 利用会话长度的分布规律

不要随意挑出一个“典型”会话乘以总玩家数就称之为预测。可根据轮数或其他实用的长度区间对观测到的会话进行分组,计算每个区间内的平均成本,然后根据各区间所占的会话比例进行加权。在记录均值的同时,也要保留中位数和高分位数:均值乘以会话量可用于预估总体用量,而分位数则有助于说明较短或异常偏长的会话可能产生多大成本。

例如,如果样本中包含大量短会话和少数超长会话,请同时报告各区间的会话比例以及各自的成本。这样,10,000 次会话的预测值就可以计算为“各区间会话数 × 区间内平均成本”的总和,而不是假设每次会话都接近全局中位数。如果不同游戏模式、语言、平台或新老玩家之间的用量存在明显差异,应先对这些群体进行分层,然后再进行汇总。分层是一种分析决策;需说明为何每个细分群体可能会改变 Token 用量或请求行为。

第 6 节

6. 记录不确定性并更新预估值

保留一份简明扼要的假设记录,包含抽样日期、会话边界规则、模型与端点、提示词版本、观测到的会话数量、缓存命中定义、价格页面查询日期、包含的费用以及排除的项目。通过改变可观测的输入参数(例如会话长度构成、输出大小或测得的缓存命中比例)来呈现低、中、高三种情景,而不是加入一个无法解释的缓冲值。对于超出观测会话范围的任何预测行为,均应作为明确的情景来对待,而非既定的测量事实。

估算的完整程度完全取决于监测手段和可计费类别。它可能会遗漏在日志记录器之外路由的调用、重试、API 未公开的已缓存 Token 类别、模型侧的推理 Token、存储时长、多媒体处理,或 Token 费率之外的服务商收费。在条件允许时,应将抽样用量与服务商的账单报告进行核对,排查重大差异,并在调整模型、提示词、缓存机制或面向玩家的功能后重新运行计算。最终得到的是一份基于观测工作负载的明文化运营成本预估,而非对未来会话或实际账单完全一致的承诺。

相关阅读

继续探索这个主题