Analytics(分析)
Open WebUI 中的 Analytics 功能为管理员提供了关于实例使用模式、Token 消耗和模型性能的全面洞察。这一强大工具帮助您了解用户与 AI 模型的交互方式,并基于数据做出资源分配和模型选择决策。
Analytics 仅供拥有 admin 角色的用户访问。通过 管理面板 > Analytics 进入。
如果您不需要 Analytics 标签,可以通过将 ENABLE_ADMIN_ANALYTICS 环境变量设置为 False 来完全隐藏它。这会阻止挂载分析 API 路由,并从管理员导航中移除该标签。此更改需要重启才能生效。
概述
Analytics 仪表板为您提供 Open WebUI 实例活动的全局视图,包括:
- 不同模型和时间段的消息量
- 用于费用估算和资源规划的 Token 使用量跟踪
- 了解参与度的用户活动模式
- 展示小时、天或月趋势的时间序列数据
所有分析数据均来源于实例数据库中存储的消息历史记录。启用 Analytics 功能后,Open WebUI 会自动跟踪和索引消息,以提供快速、可查询的洞察。
访问 Analytics
- 使用 admin 账户登录
- 导航到 管理面板(点击个人资料图标 → 管理面板)
- 点击管理员导航中的 Analytics 标签
仪表板功能
时间段选择
在 Analytics 仪表板右上角,您可以按时间段筛选所有数据:
- 最近 24 小时 - 实时监控的小时粒度
- 最近 7 天 - 过去一周的每日概览
- 最近 30 天 - 月度快照
- 最近 90 天 - 季度趋势
- 全部时间 - 完整历史数据
您选择的时间段会自动保存,并在浏览器会话之间持久存储。
用户组过滤
如果您配置了用户组,Analytics 仪表板支持按组过滤:
- 使用时间段选择器旁边的组下拉菜单
- 选择特定组,仅查看该组用户的分析数据
- 选择"所有用户"查看全实例分析
适用场景:
- 部门级报告 - 跟踪特定团队的使用情况
- 成本分摊 - 将 Token 消耗归因于业务单元
- 试点项目 - 监控测试组的推广情况
更改时间段或组过滤器时,页面上的所有指标会自动更新。
汇总统计
仪表板标题显示所选时间段的关键指标:
- 总消息数 - 生成的 AI 助手响应数量
- 总 Token 数 - 处理的所有输入和输出 Token 之和
- 总对话数 - 独立对话的数量
- 总用户数 - 发送过消息的用户数量
Analytics 统计的是 AI 助手响应而非用户消息。这能更准确地衡量 AI 模型使用情况和 Token 消耗。
消息时间线图表
交互式时间线图表按模型分类展示消息量随时间的变化。主要功能:
- 小时或每日粒度 - 根据所选时间段自动调整
- 多模型可视化 - 最多显示 8 个具有不同颜色的模型
- 悬停提示 - 显示任意时间点各模型的精确计数和百分比
- 趋势识别 - 快速发现使用模式、高峰时段和模型推广情况
此图表帮助您:
- 识别容量规划的繁忙时段
- 跟踪部署后的模型推广情况
- 检测异常活动峰值
- 监控变更或公告的影响
模型使用表格
每个模型使用情况的详细分类:
| 列 | 说明 |
|---|---|
| # | 按消息数排名 |
| 模型 | 带图标的模型名称 |
| 消息数 | 生成的 AI 助手响应总数 |
| Token 数 | 消耗的总 Token 数(输入 + 输出) |
| % | 占总消息数的百分比 |
功能:
- 可排序列 - 点击列标题按名称或消息数排序
- 模型图标 - 通过头像图片进行视觉识别
- Token 跟踪 - 查看哪些模型消耗资源最多
- 可点击行 - 点击任意模型打开模型详情模态框
使用场景:
- 识别最受欢迎的模型
- 计算每个模型的费用(将 Token 数乘以提供商价格)
- 决定保留或移除哪些模型
- 根据使用情况规划基础设施升级
模型详情模态框
点击任意模型行即可打开包含两个标签的详细模态框:
概览标签
概览标签提供:
- 反馈活动图表 - 用户反馈(点赞/踩)随时间变化的可视化历史记录
- 在 30 天、1 年或全部时间视图之间切换
- 较长时间范围使用周粒度聚合
- 标签 - 与此模型关联的最常见对话标签(前 10 个)
这有助于您了解:
- 用户对模型质量的感知随时间的变化
- 模型处理的主题/使用场景
- 用户满意度趋势
对话标签
只有在实例设置中启用 ENABLE_ADMIN_CHAT_ACCESS 时,对话标签才可见。
对话标签显示使用此模型的对话:
- 用户信息 - 发起每个对话的用户
- 预览 - 每个对话的第一条消息
- 时间戳 - 对话最后更新的时间
- 点击打开 - 直接导航到共享对话视图
适用于:
- 了解用户如何与特 定模型交互
- 审计模型使用情况以确保质量
- 寻找用于培训或文档的示例对话
用户活动表格
跟踪每个用户的参与度和 Token 消耗:
| 列 | 说明 |
|---|---|
| # | 按活动排名 |
| 用户 | 带头像的用户名 |
| 消息数 | 该用户发送的总消息数 |
| Token 数 | 该用户消耗的总 Token 数 |
功能:
- 可排序列 - 按名称或活动级别整理
- 用户识别 - 头像和显示名称
- Token 归因 - 查看每个用户的资源消耗
使用场景:
- 监控高级用户及其 Token 消耗
- 识别非活跃或低使用率账户
- 规划用户配额或速率限制
- 计算账单用途的每用户费用
Token 使用量跟踪
什么是 Token?
Token 是语言模型处理文本的单位。输入(您的提示词)和输出(模型的 响应)都消耗 Token。大多数 AI 提供商按 Token 使用量收费,因此 Token 跟踪对于费用管理至关重要。
Token 跟踪的工作原理
Open WebUI 自动从模型响应中捕获 Token 使用量,并与每条消息一起存储。Analytics 功能汇总这些数据以显示:
- 输入 Token - 用户提示词和上下文中的 Token
- 输出 Token - 模型响应中的 Token
- 总 Token - 输入和输出之和
Token 数据在不同模型提供商(OpenAI、Ollama、llama.cpp 等)之间进行标准化,无论使用哪个后端都能提供一致的指标。
Token 使用量指标
Token 使用量部分提供:
- 按模型的 Token 明细 - 每个模型的输入、输出和总 Token
- 总 Token 消耗 - 全实例 Token 使用量
- 每消息 Token 数 - 用于效率分析的每消息 Token 数
要估算费用,将 Token 数乘以您的提供商定价:
费用 = (输入_token 数 × 输入单价) + (输出_token 数 × 输出单价)
GPT-4 示例:
- 输入:1,000,000 token × $0.03/1K = $30
- 输出:500,000 token × $0.06/1K = $30
- 合计:$60
使用场景
1. 资源规划
场景: 您为团队运行 Open WebUI,需要规划基础设施容量。
Analytics 的帮助:
- 查看消息时间线识别高峰使用时段
- 检查模型使用了解哪些模型需要更多资源
- 监控 Token 使用量估算未来费用
- 跟踪用户活动为团队增长做规划
2. 模型评估
场景: 您已部署多个模型,想了解用户更喜欢哪些。
Analytics 的帮助:
- 比较各模型的消息数查看推广率
- 检查 Token 效率(每消息 Token 数)识别冗长模型
- 引入新模型后在时间线图表中监控趋势
- 结合 Evaluation 功能获取质量洞察
3. 费用管理
场景: 您使用付费 API 提供商,需要控制费用。
Analytics 的帮助:
- 按模型和用户跟踪总 Token 消耗
- 识别高使用量用户以进行配额讨论
- 比较不同模型提供商的 Token 费用
- 使用时间段过滤器定期审查
4. 用户参与
场景: 您想了解团队如何使用 AI 工具。
Analytics 的帮助:
- 监控活跃用户与注册账户的对比
- 识别可能需要支持或培训的高级用户
- 随时间跟踪推广趋势
- 将使用情况与团队计划或培训活动关联
5. 合规与审计
场景: 您的组织需要使用报告以满足合规要求。
Analytics 的帮助:
- 生成特定时间段的活动报告
- 跟踪所有 AI 交互的用户归因
- 监控已批准与未批准模型的模型使用
- 通过 API 导出数据用于外部报告工具
技术详情
数据存储
Analytics 数据存储在 chat_message 表中,包含:
- 消息内容 - 用户和 AI 助手的消息
- 元数据 - 模型 ID、用户 ID、时间戳
- Token 使用量 - 输入、输出和总 Token
- 关联关系 - 与父消息和对话的链接
启用 Analytics(通过迁移)时,Open WebUI:
- 创建带有优化索引的
chat_message表 - 回填您对话历史中的现有消息
- 双写新消息到对话 JSON 和消息表
这种双写方式确保:
- 向后兼容 - 现有功能继续正 常工作
- 快速查询 - Analytics 不影响对话性能
- 数据一致性 - 所有消息均被捕获
数据库索引
以下索引优化分析查询:
chat_id- 快速查找对话中的所有消息user_id- 快速用户活动报告model_id- 高效的模型使用查询created_at- 时间范围过滤- 常用查询模式的复合索引
API 端点
对于高级用户和集成,Analytics 提供 REST API 端点:
仪表板端点:
GET /api/v1/analytics/summary
GET /api/v1/analytics/models
GET /api/v1/analytics/users
GET /api/v1/analytics/messages
GET /api/v1/analytics/daily
GET /api/v1/analytics/tokens
模型详情端点:
GET /api/v1/analytics/models/{model_id}/chats # 获取使用此模型的对话
GET /api/v1/analytics/models/{model_id}/overview # 获取反馈历史和标签
常用查询参数:
| 参数 | 类型 | 说明 |
|---|---|---|
start_date | int | Unix 时间戳(秒)- 范围开始 |
end_date | int | Unix 时间戳(秒)- 范围结束 |
group_id | string | 过滤到特定用户组(可选) |
所有 Analytics 端点均需要管理员身份验证。包含您的管理员 Bearer 令牌:
curl -H "Authorization: Bearer YOUR_ADMIN_TOKEN" \
"https://your-instance.com/api/v1/analytics/summary?group_id=abc123"隐私与数据注意事项
哪些数据会被跟踪?
Analytics 跟踪:
- ✅ 消息时间戳和计数
- ✅ 每条消息的 Token 使用量
- ✅ 模型 ID 和用户 ID
- ✅ 对话 ID 和消息关联关系
Analytics 不会跟踪:
- ❌ 在仪表板中显示消息内容(仅显示元数据)
- ❌ 外部分享或导出
- ❌ 数据库之外的单条消息内容