camel.verifiers 包#

子模块#

camel.verifiers.base 模块#

class camel.verifiers.base.BaseVerifier(extractor: BaseExtractor | None = None, max_parallel: int | None = None, timeout: float | None = None, max_retries: int = 3, retry_delay: float = 1.0, initial_batch_size: int | None = None, cpu_threshold: float = 80.0, memory_threshold: float = 85.0, **kwargs)[来源]#

基类: ABC

所有验证器的基类。

示例

`python verifier = MyVerifier() await verifier.setup() result = await verifier.verify(response) await verifier.cleanup() `

主要特性: - 带重试逻辑的异步验证 - 全面的错误处理与日志记录 - 可配置的批处理 - 自适应扩展的资源监控

async cleanup() None[来源]#

清理验证器资源。

确保: 1. 批处理器已重置 2. 所有内部状态已清除

Raises:

RuntimeError – 如果清理失败。

async setup(**kwargs) None[来源]#

设置验证器所需的必要资源。

初始化: 1. 使用已验证参数的批处理器 2. 任何验证器特定的资源

Raises:

运行时错误 – 如果设置失败或无法初始化资源。

async verify(solution: str, reference_answer: str | None) VerificationResult[来源]#

执行带有完整错误处理的验证。

该方法通过将生成的解决方案与提供的基准真值进行比较,来验证其正确性。它能处理执行错误、超时和重试尝试,以确保稳健的验证。

Parameters:
  • solution (str) – 需要验证的生成响应。

  • reference_answer (Optional[str]) – 用于比较的预期正确答案。

Returns:

一个结构化对象包含:
  • 状态 (SUCCESS/FAILURE/ERROR/TIMEOUT)

  • 结果 (str): 验证结果或处理后的输出。

  • 耗时 (float): 验证所花费的时间。

  • 元数据 (dict): 附加详细信息,如重试次数。

  • 错误信息 (Optional[str]): 错误描述,

如果适用。

Return type:

VerificationResult

Raises:
  • RuntimeError - 如果验证意外失败。

  • asyncio.TimeoutError - 如果验证超过时间限制。

async verify_batch(solutions: List[str], reference_answers: List[str | None], raise_on_error: bool = False) List[VerificationResult][来源]#

通过可控并发并行验证多个解决方案。

该方法通过并行执行验证多个生成方案与其各自基准真值的匹配度。它能处理超时、执行错误以及批量处理的优化。

Parameters:
  • solutions (List[str]) – 需要验证的生成解决方案列表。

  • reference_answers (List[Optional[str]]) – 用于比较的预期输出列表。每个元素对应一个解决方案。

  • raise_on_error (bool, optional) – 如果为True,当任何验证失败时会抛出异常。(默认: False)

Returns:

验证结果列表,每个

输入解决方案对应一个结果。

Return type:

列表[VerificationResult]

Raises:
  • RuntimeError – 如果任何验证失败且raise_on_error为True时抛出。

  • asyncio.TimeoutError – 如果验证在最大重试次数后超时。

camel.verifiers.models 模块#

class camel.verifiers.models.VerificationOutcome(value)[来源]#

基础类: Enum

表示验证状态的枚举。

ERROR = 'error'#
FAILURE = 'failure'#
SUCCESS = 'success'#
TIMEOUT = 'timeout'#
class camel.verifiers.models.VerificationResult(*, status: ~camel.verifiers.models.VerificationOutcome, result: str, duration: float = 0.0, timestamp: ~datetime.datetime = <factory>, metadata: ~typing.Dict[str, ~typing.Any] = <factory>, error_message: str | None = None)[来源]#

基类:BaseModel

来自验证的结构化结果。

duration: float#
error_message: str | None#
metadata: Dict[str, Any]#
model_config: ClassVar[ConfigDict] = {}#

模型的配置,应该是一个符合[ConfigDict][pydantic.config.ConfigDict]的字典。

result: str#
status: VerificationOutcome#
timestamp: datetime#
class camel.verifiers.models.VerifierConfig(*, enabled: bool = True, strict_mode: bool = False, timeout: float | None = None, max_retries: int = 3, retry_delay: float = 1.0)[来源]#

基类:BaseModel

验证器行为的配置。

enabled: bool#
max_retries: int#
model_config: ClassVar[ConfigDict] = {}#

模型的配置,应该是一个符合[ConfigDict][pydantic.config.ConfigDict]的字典。

retry_delay: float#
strict_mode: bool#
timeout: float | None#

camel.verifiers.python_verifier 模块#

class camel.verifiers.python_verifier.PythonVerifier(extractor: BaseExtractor | None = None, timeout: float | None = 30.0, required_packages: List[str] | None = None, float_tolerance: float | None = None, **kwargs)[来源]#

基类:BaseVerifier

PythonVerifier类通过在隔离的虚拟环境中执行来验证基于Python的实现。

功能特性: - 使用指定Python版本创建虚拟环境。 - 在执行提供的脚本前安装所需软件包。 - 执行脚本并将输出结果与基准真值进行比对。

如果提供。

  • 执行后自动清理虚拟环境。

验证过程确保代码在受控环境中运行,最大限度地减少外部依赖和冲突。

模块内容#

class camel.verifiers.BaseVerifier(extractor: BaseExtractor | None = None, max_parallel: int | None = None, timeout: float | None = None, max_retries: int = 3, retry_delay: float = 1.0, initial_batch_size: int | None = None, cpu_threshold: float = 80.0, memory_threshold: float = 85.0, **kwargs)[来源]#

基类: ABC

所有验证器的基类。

示例

`python verifier = MyVerifier() await verifier.setup() result = await verifier.verify(response) await verifier.cleanup() `

主要特性: - 带重试逻辑的异步验证 - 全面的错误处理与日志记录 - 可配置的批处理 - 自适应扩展的资源监控

async cleanup() None[来源]#

清理验证器资源。

确保: 1. 批处理器已重置 2. 所有内部状态已清除

Raises:

RuntimeError – 如果清理失败。

async setup(**kwargs) None[来源]#

设置验证器所需的必要资源。

初始化: 1. 使用已验证参数的批处理器 2. 任何验证器特定的资源

Raises:

运行时错误 – 如果设置失败或无法初始化资源。

async verify(solution: str, reference_answer: str | None) VerificationResult[来源]#

执行带有完整错误处理的验证。

该方法通过将生成的解决方案与提供的基准真值进行比较来验证其正确性。它能处理执行错误、超时和重试尝试,以确保稳健的验证。

Parameters:
  • solution (str) – 需要验证的生成响应。

  • reference_answer (Optional[str]) – 用于比较的预期正确答案。

Returns:

一个结构化对象包含:
  • 状态(SUCCESS/FAILURE/ERROR/TIMEOUT)

  • 结果(str):验证结果或处理后的输出。

  • 耗时(float):验证所花费的时间。

  • 元数据(dict):其他详细信息,如重试次数。

  • 错误信息(Optional[str]):错误描述,

如果适用。

Return type:

VerificationResult

Raises:
  • RuntimeError - 如果验证意外失败。

  • asyncio.TimeoutError – 如果验证超过时间限制。

async verify_batch(solutions: List[str], reference_answers: List[str | None], raise_on_error: bool = False) List[VerificationResult][来源]#

通过可控并发并行验证多个解决方案。

该方法通过并行执行验证多个生成方案与其各自基准真值的匹配度。它能处理超时、执行错误以及批量处理的优化。

Parameters:
  • solutions (List[str]) – 待验证的生成解决方案列表。

  • reference_answers (List[Optional[str]]) – 用于比较的预期输出列表。每个元素对应一个解决方案。

  • raise_on_error (bool, optional) – 如果为True,当任何验证失败时会抛出异常。(默认值: False)

Returns:

验证结果列表,每个

输入解决方案对应一个结果。

Return type:

列表[VerificationResult]

Raises:
  • RuntimeError – 如果任何验证失败且raise_on_error为True时抛出。

  • asyncio.TimeoutError – 如果验证在最大重试次数后超时。

class camel.verifiers.MathVerifier(extractor: BaseExtractor | None = None, timeout: float | None = 30.0, float_rounding: int = 6, numeric_precision: int = 15, enable_wrapping: bool | None = False, **kwargs)[来源]#

基类:BaseVerifier

使用Math-Verify验证数学表达式的验证器。

功能特性: - 支持LaTeX和纯数学表达式 - 处理复数、矩阵和集合 - 可配置浮点数比较精度 - 可选的LaTeX包装以确保正确解析和渲染 - 全面的错误处理和日志记录

class camel.verifiers.PythonVerifier(extractor: BaseExtractor | None = None, timeout: float | None = 30.0, required_packages: List[str] | None = None, float_tolerance: float | None = None, **kwargs)[来源]#

基类:BaseVerifier

PythonVerifier类通过在隔离的虚拟环境中执行来验证基于Python的实现。

功能特性: - 使用指定Python版本创建虚拟环境。 - 在执行提供的脚本前安装所需软件包。 - 执行脚本并将输出结果与基准真值进行比对。

如果提供。

  • 执行后自动清理虚拟环境。

验证过程确保代码在受控环境中运行,最大限度地减少外部依赖和冲突。

class camel.verifiers.VerificationOutcome(value)[来源]#

基础类: Enum

表示验证状态的枚举。

ERROR = 'error'#
FAILURE = 'failure'#
SUCCESS = 'success'#
TIMEOUT = 'timeout'#