跳到主要内容

Analytics(分析)

Open WebUI 中的 Analytics 功能为管理员提供了关于实例使用模式、Token 消耗和模型性能的全面洞察。这一强大工具帮助您了解用户与 AI 模型的交互方式,并基于数据做出资源分配和模型选择决策。

仅管理员可用

Analytics 仅供拥有 admin 角色的用户访问。通过 管理面板 > Analytics 进入。

禁用 Analytics

如果您不需要 Analytics 标签,可以通过将 ENABLE_ADMIN_ANALYTICS 环境变量设置为 False 来完全隐藏它。这会阻止挂载分析 API 路由,并从管理员导航中移除该标签。此更改需要重启才能生效。

概述

Analytics 仪表板为您提供 Open WebUI 实例活动的全局视图,包括:

  • 不同模型和时间段的消息量
  • 用于费用估算和资源规划的 Token 使用量跟踪
  • 了解参与度的用户活动模式
  • 展示小时、天或月趋势的时间序列数据

所有分析数据均来源于实例数据库中存储的消息历史记录。启用 Analytics 功能后,Open WebUI 会自动跟踪和索引消息,以提供快速、可查询的洞察。


访问 Analytics

  1. 使用 admin 账户登录
  2. 导航到 管理面板(点击个人资料图标 → 管理面板)
  3. 点击管理员导航中的 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:

  1. 创建带有优化索引的 chat_message
  2. 回填您对话历史中的现有消息
  3. 双写新消息到对话 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_dateintUnix 时间戳(秒)- 范围开始
end_dateintUnix 时间戳(秒)- 范围结束
group_idstring过滤到特定用户组(可选)
API 访问

所有 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 不会跟踪:

  • ❌ 在仪表板中显示消息内容(仅显示元数据)
  • ❌ 外部分享或导出
  • ❌ 数据库之外的单条消息内容

数据保留

Analytics 数据遵循实例的对话保留策略。当您删除:

  • 一个对话 - 所有相关消息会从分析中移除
  • 一个用户 - 该用户的所有消息会被解除关联
  • 消息历史 - 分析数据也会被一并清除

常见问题

为什么消息计数与我的预期不同?

Analytics 统计的是 AI 助手响应,而非用户消息。如果一个对话有 10 条用户消息和 10 条助手响应,计数为 10。这能更准确地衡量 AI 使用量和 Token 消耗。

Token 跟踪的准确性如何?

Token 准确性取决于您的模型提供商:

  • OpenAI/Anthropic - 来自 API 响应的精确计数
  • Ollama - 对支持 token 上报的模型准确
  • llama.cpp - 在可用时上报 token
  • 自定义提供商 - 取决于具体实现

缺失的 token 数据在分析中显示为 0。

可以导出分析数据吗?

可以,通过 API 端点。使用 curl、Python 脚本或 BI 工具来抓取和导出数据:

curl -H "Authorization: Bearer TOKEN" \
  "https://instance.com/api/v1/analytics/summary?start_date=1704067200&end_date=1706745600" \
  > analytics_export.json

总结

Open WebUI 的 Analytics 功能通过以下能力把实例升级为数据驱动的平台:

  • 📊 模型和用户活动的实时洞察
  • 💰 用于成本管理和优化的 Token 跟踪
  • 📈 帮助理解使用模式随时间变化的趋势分析
  • 👥 用于社区建设的用户参与度指标
  • 🔒 注重隐私的设计,所有数据均保留在您的实例内

无论您管理的是个人实例还是大型组织部署,Analytics 都能为您提供优化性能、控制成本、更好地服务用户所需的可见性。


相关功能

  • Evaluation - 通过用户反馈衡量模型质量
  • RBAC - 按用户控制对模型和功能的访问
  • 数据控制 - 管理对话历史和导出
本内容仅供参考,不构成任何保证、担保或合同承诺。Open WebUI 按“现状”提供。请参阅您的许可协议 以了解适用条款。