browseruse_bench.utils.eval_utils
评估相关的工具函数和类。
from browseruse_bench.utils import (
EvaluationModel,
load_evaluation_model,
encode_image,
extract_score_from_response,
calculate_success,
normalized_results_file,
)
EvaluationModel
用于任务评估的 OpenAI 模型封装类。
class EvaluationModel:
def __init__(
self,
model: str = "gpt-4o",
api_key: str = None,
base_url: str = None
)
generate
生成评估响应,带自动重试。
def generate(
self,
messages: List[Dict],
max_tokens: int = 2048,
temperature: float = 0.3,
**kwargs
) -> str
load_evaluation_model
加载评估模型,支持环境变量回退。
def load_evaluation_model(
model: str = None,
api_key: str = None,
base_url: str = None
) -> EvaluationModel
评估模型在根目录 config.yaml 的 eval: 段配置:
eval:
model: gpt-5.4
api_key: $OPENAI_API_KEY
base_url: $OPENAI_BASE_URL
api_key 与 base_url 支持 $VAR 占位符,会在运行时从 .env 解析。
encode_image
将 PIL 图像转换为 base64 字符串。
def encode_image(
image: PIL.Image,
scale_factor: float = 1.0
) -> str
图像缩放比例(0.0 到 1.0 之间),例如 0.5 表示缩放到原尺寸的 50%
从评估响应中提取数值分数。
def extract_score_from_response(response: str) -> int
calculate_success
根据分数阈值判断任务是否成功。
def calculate_success(
score: int,
threshold: int = 60
) -> bool
normalized_results_file
上下文管理器,返回一个保证为 JSONL 格式的路径。
@contextmanager
def normalized_results_file(results_file: Path) -> Generator[Path, None, None]
使用示例
from browseruse_bench.utils import normalized_results_file
with normalized_results_file(Path("results.json")) as jsonl_path:
# jsonl_path 保证为 JSONL 格式
with open(jsonl_path) as f:
for line in f:
record = json.loads(line)