agentic_huge_data_base / wiki
页面 Open WebUI · 18.2 评估与排行榜·DeepWiki 中文全文译文

18.2 · 评估与排行榜(Evaluations and Leaderboard)

多模型对话工作台与知识应用入口 · 本章是 Open WebUI DeepWiki 中文译文的独立章节页,保留原始链接、源码锚点、模块标签和章节层级。

项目Open WebUI 章节18.2 状态全文译文 模块可观测性与治理、系统架构、检索、召回与知识系统、接口与服务契约
源码线索
  • backend/open_webui/models/feedbacks.py
  • backend/open_webui/routers/evaluations.py
  • src/lib/apis/evaluations/index.ts
  • src/lib/components/admin/Evaluations.svelte
  • src/lib/components/admin/Evaluations/FeedbackModal.svelte
  • src/lib/components/admin/Evaluations/Feedbacks.svelte
  • src/lib/components/admin/Evaluations/Leaderboard.svelte
  • src/lib/components/admin/Evaluations/LeaderboardModal.svelte
  • src/lib/components/admin/Evaluations/ModelActivityChart.svelte
  • src/lib/components/admin/Settings.svelte
模块标签
  • 可观测性与治理
  • 系统架构
  • 检索、召回与知识系统
  • 接口与服务契约
  • 界面与交互

中文译文

评估与排行榜(中文译文)

原始 DeepWiki 页面:https://deepwiki.com/open-webui/open-webui/18.2-evaluations-and-leaderboard
翻译时间:2026-06-09T16:12:19.385Z
翻译模型:deepseek-chat
原文字符数:9607
项目:Open WebUI (open-webui)

---

评估与排行榜

相关源文件

以下文件为本 wiki 页面的生成提供了上下文:

  • backend/open_webui/models/feedbacks.py
  • backend/open_webui/routers/evaluations.py
  • src/lib/apis/evaluations/index.ts
  • src/lib/components/admin/Evaluations.svelte
  • src/lib/components/admin/Evaluations/FeedbackModal.svelte
  • src/lib/components/admin/Evaluations/Feedbacks.svelte
  • src/lib/components/admin/Evaluations/Leaderboard.svelte
  • src/lib/components/admin/Evaluations/LeaderboardModal.svelte
  • src/lib/components/admin/Evaluations/ModelActivityChart.svelte
  • src/lib/components/admin/Settings.svelte
  • src/lib/components/admin/Users.svelte
  • src/lib/components/icons/DocumentArrowDown.svelte
  • src/routes/(app)/admin/evaluations/+page.svelte/admin/evaluations/+page.svelte)
  • [src/routes/(app)/admin/evaluations/[tab]/+page.svelte](src/routes/(app)/admin/evaluations/[tab]/+page.svelte)
  • src/routes/(app)/admin/users/+page.svelte/admin/users/+page.svelte)
  • [src/routes/(app)/admin/users/[tab]/+page.svelte](src/routes/(app)/admin/users/[tab]/+page.svelte)

Open WebUI 中的评估系统提供了一个结构化框架,用于通过用户反馈、并排比较(竞技场)和自动排名来评估模型性能。该系统最终生成一个模型排行榜,该排行榜使用基于 Elo 的评分,根据人类偏好和主题相关性对模型进行排名。

系统架构与数据流

评估系统横跨前端管理面板、FastAPI 后端路由器和持久化层。反馈在消息级别收集,并聚合为全局统计信息。

评估数据流

下图展示了模型评估从用户反馈到排行榜更新的完整生命周期,包括"自然语言空间"到"代码实体空间"的映射。

模型评估生命周期与实体映射

graph TD
    User["用户界面"] -- "提交反馈" --> FeedbackAPI["/api/v1/evaluations/feedback"]
    FeedbackAPI -- "insert_new_feedback()" --> FeedbackTable["FeedbackTable (SQLAlchemy)"]
    FeedbackTable -- "保存到" --> FeedbacksDB[("feedback 表")]

    Admin["管理员用户"] -- "访问排行榜" --> LeaderboardAPI["/api/v1/evaluations/leaderboard"]
    LeaderboardAPI -- "get_feedback_items()" --> FeedbackTable
    LeaderboardAPI -- "计算 Elo" --> EloCalc["_calculate_elo()"]
    EloCalc -- "返回" --> LeaderboardEntry["LeaderboardEntry (Pydantic)"]
    LeaderboardEntry -- "渲染" --> LeaderboardUI["Leaderboard.svelte"]

    Search["主题搜索"] -- "查询字符串" --> SimCalc["_compute_similarities()"]
    SimCalc -- "SentenceTransformer" --> EmbeddingModel["_get_embedding_model()"]
    EmbeddingModel -- "权重" --> EloCalc

来源:backend/open_webui/routers/evaluations.py:72-119backend/open_webui/routers/evaluations.py:149-191backend/open_webui/models/feedbacks.py:142-170src/lib/components/admin/Evaluations/Leaderboard.svelte:44-74

排行榜实现

排行榜根据模型在用户评估中的表现进行排名。它主要通过 Leaderboard.svelte 组件 src/lib/components/admin/Evaluations/Leaderboard.svelte:1-103evaluations.py 路由器 backend/open_webui/routers/evaluations.py:29-119 进行管理。

Elo 评分计算

后端实现了标准的 Elo 评分系统,用于确定模型的相对强弱 backend/open_webui/routers/evaluations.py:32-44

  1. 初始评分:每个模型默认起始评分为 1000.0 backend/open_webui/routers/evaluations.py:91
  2. 比较逻辑:当用户提供反馈时(Rating=1 表示胜,Rating=-1 表示负),系统将该模型与其 sibling_model_ids 进行比较 backend/open_webui/routers/evaluations.py:94-104
  3. K 因子:使用标准 K 因子 32 来控制评分波动性 backend/open_webui/routers/evaluations.py:86
  4. 公式:系统根据评分差计算预期结果,并相应更新胜者和对手的评分 backend/open_webui/routers/evaluations.py:107-110
主题特定排名(语义重排)

系统支持基于与搜索查询的语义相似度对排行榜进行动态重排 backend/open_webui/routers/evaluations.py:45-52

  • 嵌入模型:默认使用 TaylorAI/bge-micro-v2(可通过 AUXILIARY_EMBEDDING_MODEL 配置)backend/open_webui/routers/evaluations.py:56
  • 相似度加权_compute_similarities 函数计算搜索查询与每条反馈关联标签之间的余弦相似度 backend/open_webui/routers/evaluations.py:149-191
  • 加权 Elo:该相似度分数在 Elo 更新函数中用作 weight,使得与特定主题相关的反馈对特定排行榜视图产生更大影响 backend/open_webui/routers/evaluations.py:102

来源:backend/open_webui/routers/evaluations.py:54-119backend/open_webui/routers/evaluations.py:149-191src/lib/components/admin/Evaluations/Leaderboard.svelte:114-123

反馈收集与管理

反馈是评估的原始数据来源。每条记录都包含元数据和对话状态的快照。

数据库模式:反馈

Feedback 类定义了 feedback 表中用户评估的持久化存储结构 backend/open_webui/models/feedbacks.py:22-32

代码实体:Feedback 模式

classDiagram
    class Feedback {
        +String id
        +String user_id
        +BigInteger version
        +String type
        +JSON data
        +JSON meta
        +JSON snapshot
        +BigInteger created_at
        +BigInteger updated_at
    }
    class FeedbackForm {
        +String type
        +RatingData data
        +dict meta
        +SnapshotData snapshot
    }
    FeedbackTable -- Feedback : 管理
    FeedbackForm -- Feedback : 映射到

来源:backend/open_webui/models/feedbacks.py:22-32backend/open_webui/models/feedbacks.py:101-106

反馈操作
  • 创建:通过 createNewFeedback API 调用提交反馈 src/lib/apis/evaluations/index.ts:275-304
  • 详情查看FeedbackModal.svelte 组件通过 getFeedbackById 按 ID 检索特定反馈 src/lib/components/admin/Evaluations/FeedbackModal.svelte:6,包括聊天快照,以便管理员查看被评分的具体提示和响应 src/lib/components/admin/Evaluations/FeedbackModal.svelte:71-95
  • 筛选:管理员可以按 model_id 筛选反馈,并按 updated_atratinguser 排序 src/lib/components/admin/Evaluations/Feedbacks.svelte:38-55

管理界面与分析

评估系统已集成到管理面板中,提供用于高级排名和细粒度数据分析的工具。

评估选项卡

主评估界面(Evaluations.svelte)分为两个主要视图:

  1. 排行榜:显示排名模型及其 Elo 评分、胜/负计数和热门标签 src/lib/components/admin/Evaluations.svelte:111-112
  2. 反馈:所有单独反馈提交的历史记录 src/lib/components/admin/Evaluations.svelte:113-114
分析与可视化
  • 模型历史LeaderboardModal.svelte 使用 getModelHistory 获取时间序列性能数据 src/lib/components/admin/Evaluations/LeaderboardModal.svelte:31-42
  • 活动图表:使用 ModelActivityChart.svelte 组件可视化性能趋势,支持 30 天、1 年和全部时间视图 src/lib/components/admin/Evaluations/LeaderboardModal.svelte:15-20
  • 热门标签:后端通过 _get_top_tags 聚合每个模型最频繁的标签,帮助管理员了解模型的感知优势(例如"简洁"、"创意")backend/open_webui/routers/evaluations.py:122-146
数据可移植性

系统支持导出反馈数据以供外部分析:

  • JSON/CSV 导出Feedbacks.svelte 组件通过 exportAllFeedbacks 提供导出完整反馈历史的处理程序 src/lib/components/admin/Evaluations/Feedbacks.svelte:184-204
  • CSV 映射feedbacksToCsv 函数将复杂的 JSON 元数据(如 sibling_model_ids)展平为适合电子表格软件的格式 src/lib/components/admin/Evaluations/Feedbacks.svelte:152-182

来源:src/lib/components/admin/Evaluations.svelte:51-118src/lib/components/admin/Evaluations/Feedbacks.svelte:152-204backend/open_webui/routers/evaluations.py:122-146src/lib/components/admin/Evaluations/LeaderboardModal.svelte:75-102