【免费下载链接】HaloWebUI
基于官方OpenWebUI,汉化界面提高中文使用体验,增加了模型计费和用量统计
HaloWebUI 是一款基于 Open WebUI 深度定制的自托管大模型管理平台,界面全面汉化,其中最实用的能力之一就是模型计费与用量统计:它把每次对话的 Token 消耗完整落库,再按模型、按用户、按天三个维度聚合,让团队能准确核算大模型调用成本。本文带你从零看懂这套机制:数据从哪来、在界面上怎么看、最终怎么换算成钱。
为什么需要 Token 用量统计与成本核算 💡
同时接入多个大模型(Ollama、OpenAI 兼容接口、Anthropic Claude、Google Gemini、智谱 GLM 等)时,每次调用都会产生真实的 API 费用。如果平台本身不记录用量,管理员只能翻上游账单"对暗号"。HaloWebUI 的做法是:
- 消息级:每条 AI 回复记录输入/输出 Token 数;
- 管理端:自动聚合成日趋势、模型排行、用户排行;
- 核算级:导出 Token 数据后,乘以单价即可得到成本报表。
数据来源:Token 消耗数据是怎么来的 📥
Token 用量并不是 HaloWebUI 自己"估算"的,而是直接采用模型服务返回的usage字段:
- 流式请求需开启 usage 回传:对 OpenAI 兼容接口,HaloWebUI 会发送
stream_options: { include_usage: true },接口返回末尾的用量信息才会包含 Token 统计(见中文文案 src/lib/i18n/locales/zh-CN/translation.json)。 - 多厂商字段自动归一化:不同厂商字段名不同,后端统一兼容处理,例如
prompt_tokens/input_tokens/promptTokenCount(Gemini)都会被归一为"输入 Token",completion_tokens/output_tokens/candidatesTokenCount归一为"输出 Token",核心逻辑在 backend/open_webui/routers/analytics.py。 - 持久化到消息表:每条 assistant 消息的
prompt_tokens、completion_tokens保存在ChatMessage表中(backend/open_webui/models/chats.py,建表迁移见 a1b2c3d4e5f6_add_chat_message_table.py),所有统计都是基于这张表的聚合查询。
还有一个贴心的自动补录机制:流式场景下消息内容可能先落库、Token 用量后到。查询统计时,_ensure_tokens_backfilled 会从会话历史中把缺失的用量自动补回消息表,保证报表不缺数。
聊天页:单条消息的 Token 消耗怎么看 👀
对话结束后,AI 回复底部会显示三个指标:速度(Token/秒)、消耗(Token 总数)、耗时,计算逻辑见 ResponseMessage.svelte。
把鼠标悬停在用量区域,还会弹出一张毛玻璃卡片,展示完整明细(formatUsageHtml):
| 明细项 | 含义 |
|---|---|
| 总消耗 | 本次回复的 Token 总数 |
| 输入 Token | 上下文 + 提示词占用的 Token |
| 输出 Token | 模型生成的 Token |
| 推理 Token | 思考型模型的思维链消耗 |
| 缓存 Token | 命中提示词缓存的部分 |
某项若上游未返回,会显示"未返回",不会硬凑数字,这一点在核算成本时很重要。
管理端:用量统计看板的四个维度 📊
管理员登录后可进入分析(Analytics)页面,由 src/lib/components/admin/Analytics.svelte 实现,对应接口封装在 src/lib/apis/analytics/index.ts。支持1~365 天时间范围选择,并可按分组过滤成员:
- 总览:消息量、Token 用量、活跃度的每日趋势图;
- 模型:按模型聚合消息数与 Token 消耗(
GET /analytics/models,analytics.py),一眼看出哪个模型最"烧 Token"; - 用户:按用户聚合活跃度与 Token 消耗(
GET /analytics/users),方便分摊部门成本; - 数据清理:对选定模型的历史统计记录执行清理(
POST /analytics/cleanup),先预览、再删除,避免误伤。
如何核算真实成本:Token 消耗 × 单价 💰
HaloWebUI 记录的是"用量","单价"来自你与上游服务商的约定。核算公式很简单:
成本 = Σ(输入 Token × 输入单价 + 输出 Token × 输出单价)
以一次"输入 2,000 Token、输出 800 Token"的回复为例(单价为示例值,请以实际账单为准):
| 项目 | Token 数 | 示例单价 | 金额 |
|---|---|---|---|
| 输入 | 2,000 | ¥15 / 百万 Token | ¥0.030 |
| 输出 | 800 | ¥60 / 百万 Token | ¥0.048 |
| 合计 | 2,800 | — | ¥0.078 |
三个核算要点:
- 推理 Token 通常按输出计费:思考型模型的
reasoning_tokens会显著推高成本,看板里的"输出 Token"已能反映整体水位; - 缓存 Token 通常更便宜:命中提示词缓存的输入 Token 单价更低,长上下文场景下善用缓存可省钱;
- 警惕重复扣费:请求已发出但网络中断时,上游可能已完成计费。HaloWebUI 的错误提示也给出了对应建议——"先检查上游日志或计费记录,确认没有拿到结果后再重试或切换其他接口,避免重复扣费"。
配置与权限相关说明 ⚙️
- 功能开关:管理端分析面板由环境变量
ENABLE_ADMIN_ANALYTICS控制,默认开启,定义见 backend/open_webui/config.py; - 权限隔离:所有统计接口(含清理)均要求管理员权限,普通用户只能看到自己消息上的用量;
- 时区友好:日趋势按本地时区切分日期(analytics.py),国内团队无需手动换算。
总结 ✅
HaloWebUI 的模型计费与用量统计链路非常清晰:上游 usage 字段 → 消息表落库(含自动补录)→ 聊天页明细展示 → 管理端三维聚合 → 单价换算成本。无论你是想给团队分摊 API 费用,还是单纯想知道"这个月到底烧了多少 Token",这套机制都能让你在分钟级完成成本核算。想进一步体验,可克隆仓库 https://link.gitcode.com/i/b7a750abbd11eccc70456b28d03d7d18 后按 INSTALLATION.md 部署,再配合 docs/ 目录下的官方文档快速上手。
【免费下载链接】HaloWebUI
基于官方OpenWebUI,汉化界面提高中文使用体验,增加了模型计费和用量统计
相关推荐
Karabiner-Elements:macOS键盘自定义终极指南
Karabiner Elements:macOS键盘自定义终极指南 想要彻底掌控你的Mac键盘吗?Karabiner Elements正是你寻找的macOS键盘
开发工具AgentScope模型用量终极指南:智能令牌消耗与成本计算
AgentScope模型用量终极指南:智能令牌消耗与成本计算 AgentScope作为开源多智能体框架,在 智能令牌消耗 和 成本计算 方面提供了完整的解决方案
人工智能大模型AI Agent多智能体Agent 框架Agent 编排工具调用RAGMCP 服务语音CC Switch 使用量统计功能完全指南:数据来源、Token 核算、费用估算与计费模型归一化
CC Switch 使用量统计功能完全指南:数据来源、Token 核算、费用估算与计费模型归一化 CC Switch 是一套跨平台桌面 All in One 管
AI 应用开发者工具桌面应用
创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考