Skip to content

Latest commit

 

History

History
245 lines (158 loc) · 9.18 KB

File metadata and controls

245 lines (158 loc) · 9.18 KB
Open-Judge Logo

全面评估,质量驱动:提升应用效果

🌟 如果您觉得 OpenJudge 有帮助,请给我们一个 Star 🌟

Python 3.10+ PyPI Documentation

📖 文档 | 🤝 贡献指南 | English


📑 目录

OpenJudge 是一个统一框架,旨在通过全面评估质量奖励来提升 LLM 和 Agent 应用效果

💡 评估和奖励信号是应用的基石。全面评估能够系统分析不足之处以推动快速迭代,而高质量奖励则为高级优化和微调提供必要的基础。

OpenJudge 将评估指标和奖励信号统一为标准化的 Grader 接口,提供预构建的评分器、灵活的自定义能力以及无缝的框架集成。


✨ 核心特性

📦 系统化、质量保证的评分器库

访问 50+ 生产就绪的评分器,具有全面的分类体系,经过严格验证以确保可靠性能。

🎯 通用

关注点: 语义质量、功能正确性、结构合规性

核心评分器:

  • Relevance - 语义相关性评分
  • Similarity - 文本相似度测量
  • Syntax Check - 代码语法验证
  • JSON Match - 结构合规性检查

🤖 智能体

关注点: 智能体生命周期、工具调用、记忆、计划可行性、轨迹质量

核心评分器:

  • Tool Selection - 工具选择准确性
  • Memory - 上下文保持能力
  • Plan - 策略可行性
  • Trajectory - 路径优化

🖼️ 多模态

关注点: 图文一致性、视觉生成质量、图像有用性

核心评分器:

  • Image Coherence - 视觉-文本对齐
  • Text-to-Image - 生成质量
  • Image Helpfulness - 图像贡献度
  • 🌐 多场景覆盖: 广泛支持包括智能体、文本、代码、数学和多模态任务在内的多种领域。→ 探索支持的场景
  • 🔄 全面的智能体评估: 不仅评估最终结果,我们还评估整个生命周期——包括轨迹、记忆、反思和工具使用。→ 智能体生命周期评估
  • 质量保证: 每个评分器都配有基准数据集和 pytest 集成用于验证。→ 查看基准数据集

🛠️ 灵活的评分器构建方法

选择适合您需求的构建方法:

  • 自定义: 轻松扩展或修改预定义的评分器以满足您的特定需求。👉 自定义评分器开发指南
  • 数据驱动的评分标准: 有一些示例但没有明确规则?使用我们的工具根据您的数据自动生成白盒评估标准(Rubrics)。👉 自动评分标准生成教程
  • 训练评判模型(即将推出🚀): 对于大规模和专业化场景,我们正在开发训练专用评判模型的能力。SFT、Bradley-Terry 模型和强化学习工作流的支持即将推出,帮助您构建高性能、领域特定的评分器。

🔌 轻松集成(🚧 即将推出)

我们正在积极构建与主流可观测性平台和训练框架的无缝连接器。敬请期待!→ 查看 集成


最新动态


📥 安装

pip install py-openjudge

💡 更多安装方法可在 快速开始指南 中找到。


🚀 快速开始

import asyncio
from openjudge.models import OpenAIChatModel
from openjudge.graders.common.relevance import RelevanceGrader

async def main():
    # 1️⃣ 创建模型客户端
    model = OpenAIChatModel(model="qwen3-32b")

    # 2️⃣ 初始化评分器
    grader = RelevanceGrader(model=model)

    # 3️⃣ 准备数据
    data = {
        "query": "什么是机器学习?",
        "response": "机器学习是人工智能的一个子集,使计算机能够从数据中学习。",
    }

    # 4️⃣ 评估
    result = await grader.aevaluate(**data)

    print(f"分数: {result.score}")   # 分数: 5
    print(f"原因: {result.reason}")

if __name__ == "__main__":
    asyncio.run(main())

📚 完整的快速开始内容可在 快速开始指南 中找到。


🔗 集成

无缝连接 OpenJudge 与主流可观测性和训练平台,更多集成即将推出:

类别 状态 平台
可观测性 🟡 进行中 LangSmithLangFuseArize Phoenix
训练 🔵 计划中 verlTrinity-RFT

💬 有您希望我们优先支持的框架吗?提交 Issue


🤝 贡献

我们欢迎您的贡献!我们希望让参与 OpenJudge 的贡献尽可能简单和透明。

🎨 添加新评分器 — 有领域特定的评估逻辑?与社区分享吧! 🐛 报告 Bug — 发现问题?通过 提交 issue 帮助我们修复 📝 改进文档 — 更清晰的解释或更好的示例总是受欢迎的 💡 提议新功能 — 有新集成的想法?让我们讨论!

📖 查看完整的 贡献指南 了解编码标准和 PR 流程。


💬 社区

欢迎加入 OpenJudge 钉钉交流群,与我们一起讨论:

钉钉群二维码

迁移指南(v0.1.x → v0.2.0)

OpenJudge 之前以旧包名 rm-gallery(v0.1.x)发布。从 v0.2.0 开始,它以 py-openjudge 发布,Python 导入命名空间为 openjudge

OpenJudge v0.2.0 与 v0.1.x 不向后兼容。 如果您目前正在使用 v0.1.x,请选择以下路径之一:

  • 继续使用 v0.1.x(旧版):继续使用旧包
pip install rm-gallery

我们在 v0.1.7-legacy 分支 中保留了 v0.1.7(最新的 v0.1.x 版本) 的源代码。

如果您遇到迁移问题,请 提交 issue 并附上您的最小复现代码和当前版本。


📄 引用

如果您在研究中使用 OpenJudge,请引用:

@software{
  title  = {OpenJudge: A Unified Framework for Holistic Evaluation and Quality Rewards},
  author = {The OpenJudge Team},
  url    = {https://github.com/modelscope/OpenJudge},
  month  = {07},
  year   = {2025}
}

由 OpenJudge 团队用 ❤️ 打造

⭐ 给我们 Star · 🐛 报告 Bug · 💡 提议功能