活动合约
查询期望的字段
| 字段 | 类型 | 为什么存在 |
|---|---|---|
| timestamp_utc | Timestamp | 当模型请求完成时。 |
| feature | Utf8 | 稳定的产品工作流程或功能名称。 |
| model | Utf8 | 提供者模型标识符。 |
| input_tokens | Int64 | 提供商报告的输入令牌。 |
| output_tokens | Int64 | 提供者报告的输出令牌。 |
| estimated_cost_usd | Float64 | 根据版本化模型定价计算的请求成本。 |
| status | Utf8 | 成功或失败。 |
DataFusion SQL
复制查询
sql
SELECT
feature,
model,
COUNT(*) AS requests,
SUM(input_tokens + output_tokens) AS total_tokens,
ROUND(SUM(estimated_cost_usd), 4) AS cost_usd,
ROUND(SUM(estimated_cost_usd) / NULLIF(COUNT(*), 0), 4) AS cost_per_request_usd
FROM llm_request_completed
WHERE timestamp_utc >= now() - INTERVAL '30 days'
AND feature IS NOT NULL
GROUP BY feature, model
ORDER BY cost_usd DESC;此只读查询是针对空类型表计划和执行的 阿帕奇 DataFusion 45.2.0。确定性样本输出是综合的并单独审查;根据您自己的数据验证字段类型、阈值和业务定义。 阅读测试方法。
查询结果
按功能划分的 30 天模型成本
研究报告显示,尽管请求少得多,但整体成本却更高,这表明单位成本优化而不是采用问题。
research_report
0.8 USD
document_summary
0.15 USD
support_draft
0.1 USD
| feature | model | requests | total_tokens | cost_usd | cost_per_request_usd |
|---|---|---|---|---|---|
| research_report | reasoning-large | 4 | 8,000 | 0.8 | 0.2 |
| document_summary | balanced-medium | 3 | 4,500 | 0.15 | 0.05 |
| support_draft | fast-small | 5 | 5,000 | 0.1 | 0.02 |
综合示例输出。在将其用于操作决策之前,针对您自己的事件架构和阈值运行查询。
SQL 是如何工作的
- 1按特征和模型进行分组可以保留解释模型迁移所需的上下文。
- 2每个请求的成本将大批量廉价工作流程与小批量昂贵工作流程区分开来。
- 3使用版本化价格表存储事件时计算的请求成本,以便历史报告不会在提供商定价发生变化时发生变化。
需要决定的边缘情况
- 当输入、缓存输入和输出令牌具有不同价格时,请勿将总令牌乘以一个比率。
- 如果提供商向其计费,则包括失败的请求;否则添加 billing_status 字段。
- 当客户的利润存在重大差异时,请使用帐户或团队标识符。
推荐仪表板
- 条形图:cost_usd(按功能)
- 折线图:按型号划分每日成本
- 表:没有原始提示内容的最高成本的单独请求
让查询示例发挥作用
相关埋点和指南
定义源数据
此分析的事件模式
继续分析
在真实事件中运行它
创建表,调整字段并保存结果
免费开始,发送结构化事件,并将查询结果用作图表、共享仪表板小部件或警报输入。