Ragas Ragas
stable · 中文译文
中文译文 · 原文:https://docs.ragas.io/en/stable/howtos/cli/workflow_eval/ · 许可证 Apache-2.0

工作流评测 Quickstart

workflow_eval 模板评测带有邮件分类与路由的复杂 LLM 工作流。

创建项目

ragas quickstart workflow_eval
cd workflow_eval

安装依赖

uv sync

设置 API Key

export OPENAI_API_KEY="your-openai-key"

运行评测

uv run python evals.py

项目结构

workflow_eval/
├── README.md              # Project documentation
├── pyproject.toml         # Project configuration
├── workflow.py            # Workflow implementation
├── evals.py               # Evaluation workflow
├── __init__.py            # Python package marker
└── evals/
    ├── datasets/          # Test datasets
    ├── experiments/       # Evaluation results
    └── logs/              # Execution logs

评测内容

该模板评测客户支持邮件分类工作流:

  • 工作流:多步邮件处理(分类 → 抽取 → 回复)
  • 类别:Bug Report、Feature Request、Billing
  • 测试用例:带有期望类别与抽取字段的客户邮件
  • 指标:检查分类准确率的自定义离散指标

理解代码

工作流(workflow.py)

实现客户支持邮件工作流:

from workflow import default_workflow_client

workflow = default_workflow_client()
result = workflow.process_email("I found a bug in version 2.1.4...")
# Returns: category, extracted fields, response

评测(evals.py)

对照通过标准测试工作流准确率:

def load_dataset():
    dataset_dict = [
        {
            "email": "Hi, I'm getting error code XYZ-123 when using version 2.1.4...",
            "pass_criteria": "category Bug Report; product_version 2.1.4; error_code XYZ-123",
        },
        # More test cases...
    ]

该指标评测工作流是否正确:

  • 分类邮件类别
  • 抽取相关字段(版本、错误码、发票号等)
  • 生成合适的回复

测试用例

模板包含多样场景:

  • Bug Reports:带版本号和错误码
  • Feature Requests:带紧急程度和产品领域
  • Billing Issues:带发票号和金额

定制

接入你自己的工作流

用你自己的工作流替换示例:

from your_workflow import YourWorkflow

workflow = YourWorkflow()

@experiment()
async def run_experiment(row):
    result = await workflow.process(row["input"])
    # Evaluate result...

下一步