跳到主要内容

分析 (Analytics)

Open WebUI 中的**分析 (Analytics)**功能为管理员提供了关于其实例的使用模式、Token 消耗和模型性能的全面洞察。这一强大的工具可以帮助您了解用户是如何与 AI 模型进行交互的,并就资源分配和模型选择做出数据驱动的决策。

管理员专属功能

分析功能仅对具有 admin 角色的用户开放。您可以通过 Admin Panel > Analytics 进行访问。

禁用分析功能

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

概述

分析仪表盘让您可以鸟瞰 Open WebUI 实例的活动,包括:

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

所有分析数据都源自存储在您实例数据库中的消息历史记录。启用分析功能后,Open WebUI 会自动跟踪并对消息建立索引,以提供快速、可查询的洞察。


访问分析 (Analytics)

  1. 使用 admin 账户登录
  2. 导航至 Admin Panel(点击您的头像 → Admin Panel)
  3. 点击管理员导航中的 Analytics 标签页

仪表盘功能

时间段选择

在分析仪表盘的右上角,您可以按时间段过滤所有数据:

  • 最近 24 小时 (Last 24 hours) - 按小时展示粒度,适用于实时监控
  • 最近 7 天 (Last 7 days) - 过去一周的每日概览
  • 最近 30 天 (Last 30 days) - 月度快照
  • 最近 90 天 (Last 90 days) - 季度趋势
  • 全部时间 (All time) - 完整的历史数据

您选择的时间段将自动保存,并在不同的浏览器会话中保持一致。

用户组过滤

如果您配置了用户组,分析仪表盘允许按组进行过滤:

  • 使用时间段选择器旁边的用户组下拉菜单
  • 选择特定组以仅查看该组中用户的分析数据
  • 选择“所有用户 (All Users)”以查看实例范围内的分析数据

这对于以下场景非常有用:

  • 部门级报告 - 跟踪特定团队的使用情况
  • 成本分配 - 将 Token 消耗归因于各个业务部门
  • 试点项目 - 监控测试组内的采用情况

当您更改时间段或用户组过滤器时,页面上的所有指标都会自动更新。

摘要统计数据

仪表盘头部显示了所选时间段内的关键指标:

  • 总消息数 (Total Messages) - 生成的助手响应数量
  • 总 Token 数 (Total Tokens) - 处理的所有输入和输出 Token 的总和
  • 总聊天数 (Total Chats) - 唯一对话的数量
  • 总用户数 (Total Users) - 发送消息的用户数量
消息统计说明

分析功能统计的是**助手响应 (assistant responses)**的数量,而不是用户消息的数量。这能更准确地衡量 AI 模型的使用情况和 Token 消耗。

消息时间线图表

交互式时间线图表按模型细分,可视化了随时间变化的消息量。关键功能:

  • 小时或每日粒度 - 根据所选的时间段自动调整
  • 多模型可视化 - 使用不同的颜色显示最多 8 个模型
  • 悬停提示 - 显示在任何时间点每个模型的准确数量和百分比
  • 趋势识别 - 快速发现使用模式、高峰时段和模型采用情况

此图表有助于您:

  • 识别繁忙时段以进行容量规划
  • 在部署后跟踪模型的采用情况
  • 检测异常的活动激增
  • 监控变更或公告的影响

模型使用情况表格

每个模型使用情况的详细细分:

列名描述
#按消息数量排序的排名
模型 (Model)带有图标的模型名称
消息数 (Messages)生成的助手响应总数
Token 数 (Tokens)消耗的总 Token 数(输入 + 输出)
占比 (%)占总消息数的百分比份额

功能:

  • 可排序的列 - 点击列标题可按名称或消息数进行排序
  • 模型图标 - 通过头像进行直观的视觉识别
  • Token 跟踪 - 查看哪些模型消耗的资源最多
  • 可点击的行 - 点击任何模型行即可打开 模型详情模态框

使用场景:

  • 找出您最受欢迎的模型
  • 计算每个模型的成本(通过将 Token 数乘以服务商的费率)
  • 决定保留或移除哪些模型
  • 根据使用情况规划基础设施升级

模型详情模态框

点击任何模型行会打开一个包含两个标签页的详细模态框:

Overview 标签页

Overview 标签页提供:

  • 反馈活动图表 (Feedback Activity Chart) - 用户反馈(点赞/踩)随时间变化的视觉历史记录
    • 可在 最近 30 天最近 1 年全部时间视图之间切换
    • 较长时间范围内按周聚合
  • 标签 (Tags) - 与该模型相关联的最常见聊天标签(前 10 个)

这有助于您了解:

  • 用户随着时间的推移如何看待模型质量
  • 模型正在处理哪些主题/使用场景
  • 用户满意度的趋势

Chats 标签页

需要管理员聊天访问权限

Chats 标签页仅在实例设置中启用了 ENABLE_ADMIN_CHAT_ACCESS 时才可见。

Chats 标签页显示了使用该模型的对话:

  • 用户信息 - 谁发起了每次聊天
  • 预览 - 每次对话的第一条消息
  • 时间戳 - 聊天最后更新的时间
  • 点击打开 - 直接导航到共享的聊天视图

这对于以下场景非常有用:

  • 了解用户如何与特定模型进行交互
  • 审计模型使用情况以进行质量保证
  • 寻找用于训练或编写文档的示例对话

用户活跃度表格

跟踪每个用户的用户参与度和 Token 消耗情况:

列名描述
#按活跃度排序的排名
用户 (User)带有头像的用户名
消息数 (Messages)该用户发送的消息总数
Token 数 (Tokens)该用户消耗的总 Token 数

功能:

  • 可排序的列 - 按名称或活跃度级别进行组织
  • 用户标识 - 头像和显示名称
  • Token 归因 - 查看每个用户的资源消耗情况

使用场景:

  • 监控核心用户及其 Token 消耗
  • 识别不活跃或低使用率的账户
  • 规划用户配额或速率限制
  • 出于计费目的计算单用户成本

Token 使用情况跟踪

什么是 Token?

Token 是语言模型用来处理文本的单位。输入(您的 Prompt)和输出(模型的响应)都会消耗 Token。大多数 AI 服务商都根据 Token 使用情况收费,这使得 Token 跟踪对于成本管理至关重要。

Token 跟踪是如何工作的

Open WebUI 会自动从模型响应中捕获 Token 使用情况,并将其与每条消息一起存储。分析功能聚合这些数据以显示:

  • 输入 Token (Input tokens) - 用户 Prompt 和上下文中的 Token
  • 输出 Token (Output tokens) - 模型响应中的 Token
  • 总 Token (Total tokens) - 输入和输出之和

Token 数据在不同的模型服务商(OpenAI, Ollama, llama.cpp 等)之间进行了标准化,以便无论您使用的是哪个后端,都能提供一致的指标。

Token 使用情况指标

Token 使用情况部分(可通过 Tokens 接口或仪表盘访问)提供:

  • 单模型 Token 细分 - 每个模型的输入、输出和总 Token
  • 总 Token 消耗 - 实例范围内的 Token 使用情况
  • 消息数量关联 - 每条消息的 Token 数,用于效率分析
成本估算

要估算成本,请将 Token 数量乘以您服务商的定价:

成本 = (输入 Token × 输入单价) + (输出 Token × 输出单价)

以 GPT-4 为例:

  • 输入:1,000,000 tokens × $0.03/1K = $30
  • 输出:500,000 tokens × $0.06/1K = $30
  • 总计:$60

使用场景

1. 资源规划

场景: 您正在为一个团队运行 Open WebUI,需要规划基础设施容量。

分析功能如何提供帮助:

  • 查看消息时间线以识别高峰使用时段
  • 检查模型使用情况以查看哪些模型需要更多资源
  • 监控 Token 使用情况以估算未来的成本
  • 跟踪用户活跃度以规划团队的扩张

2. 模型评估

场景: 您部署了多个模型,想知道您的用户更喜欢哪一个。

分析功能如何提供帮助:

  • 比较各模型的消息数量以查看采用率
  • 检查 Token 效率(每条消息的 Token 数)以识别冗长的模型
  • 在引入新模型后监控时间线图表中的趋势
  • 结合评估功能以获得质量洞察

3. 成本管理

场景: 您使用的是付费 API 服务商,需要控制成本。

分析功能如何提供帮助:

  • 按模型和用户跟踪总 Token 消耗
  • 识别高使用率用户以便进行配额讨论
  • 比较不同模型服务商之间的 Token 成本
  • 使用时间段过滤器设置定期审查

4. 用户参与度

场景: 您想了解您的团队是如何使用 AI 工具的。

分析功能如何提供帮助:

  • 监控活跃用户与注册账户的比例
  • 识别可能需要支持或培训的核心用户
  • 跟踪随着时间推移的采用趋势
  • 将使用情况与团队的主动性或培训课程相关联

5. 合规与审计

场景: 您的组织需要合规性使用报告。

分析功能如何提供帮助:

  • 生成特定时间段的活动报告
  • 跟踪所有 AI 交互的用户归因
  • 监控已授权模型与未授权模型的模型使用情况
  • 通过 API 导出数据以供外部报告工具使用

技术细节

数据存储

分析数据存储在 chat_message 表中,该表包含:

  • 消息内容 - 用户和助手消息
  • 元数据 - 模型 ID、用户 ID、时间戳
  • Token 使用情况 - 输入、输出和总 Token
  • 关系 - 指向父消息和聊天的链接

当您(通过迁移)启用分析功能时,Open WebUI:

  1. 创建具有优化索引的 chat_message
  2. 从您的聊天历史记录中回填现有消息
  3. 将新消息双写到聊天 JSON 和消息表中

这种双写方法可确保:

  • 向后兼容性 - 现有功能继续正常工作
  • 快速查询 - 分析不会影响聊天性能
  • 数据一致性 - 捕获所有消息

数据库索引

以下索引优化了分析查询:

  • chat_id - 快速查找聊天中的所有消息
  • user_id - 快速生成用户活动报告
  • model_id - 高效的模型使用查询
  • created_at - 时间范围过滤
  • 针对常见查询模式的复合索引

API 接口端点

对于高级用户和集成,分析功能提供了 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 访问说明

所有分析端点都需要管理员身份验证。请在请求中包含您的管理员 Bearer Token:

curl -H "Authorization: Bearer YOUR_ADMIN_TOKEN" \
  "https://your-instance.com/api/v1/analytics/summary?group_id=abc123"

隐私与数据注意事项

哪些数据会被跟踪?

分析跟踪:

  • ✅ 消息时间戳和数量
  • ✅ 每条消息的 Token 使用情况
  • ✅ 模型 ID 和用户 ID
  • ✅ 聊天 ID 和消息关系

分析不会跟踪:

  • ❌ 仪表盘中消息内容的显示(仅显示元数据)
  • ❌ 外部共享或导出
  • ❌ 数据库之外的单个消息内容

数据留存

分析数据遵循您实例的聊天留存政策。当您删除:

  • 聊天 - 所有关联的消息将从分析中移除
  • 用户 - 他们的所有消息都将被取消关联
  • 消息历史 - 分析数据也将被清除

常见问题

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

分析功能统计的是助手响应,而不是用户消息。如果一次聊天有 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 跟踪
  • 📈 用于了解随着时间推移的使用模式的趋势分析
  • 👥 用于社区建设的用户参与度指标
  • 🔒 将所有数据保留在您实例上的隐私核心设计

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


This content is for informational purposes only and does not constitute a warranty, guarantee, or contractual commitment. Open WebUI is provided "as is." See your license for applicable terms.