首页
/ Agenta项目中代码评估功能失效问题分析与解决方案

Agenta项目中代码评估功能失效问题分析与解决方案

2025-06-29 23:19:17作者:庞队千Virginia

问题背景

在Agenta项目的最新版本中,用户反馈自动评估功能组中的代码评估模块出现了异常。具体表现为当用户尝试使用代码评估功能时,系统无法正常返回预期的浮点数结果,而是出现了错误提示。

问题现象

用户在操作过程中发现,创建新的代码评估器后,在自动评估结果页面无法正常显示评估分数。系统界面显示异常,而该功能在上周还能正常工作。

技术分析

经过深入分析,我们发现问题的根源在于代码评估器的direct_use属性设置不正确。该属性控制着评估器是否可以直接使用,当设置为False时会导致评估功能失效。正确的配置应该将direct_use属性设置为True

此外,我们还发现评估脚本执行过程中存在参数传递错误。具体表现为execute_code_script()函数接收到了一个意外的关键字参数data_point。这是因为后端服务在调用评估函数时传递了不匹配的参数。

解决方案

1. 修正评估器配置

需要修改代码评估器的配置,确保direct_use属性设置为True。以下是正确的配置示例:

{
    "name": "代码评估",
    "key": "auto_custom_code_run",
    "direct_use": True,
    "settings_template": {
        "code": {
            "label": "评估代码",
            "type": "code",
            "default": "from typing import Dict\n\ndef evaluate(\n    app_params: Dict[str, str],\n    inputs: Dict[str, str],\n    output: str,\n    correct_answer: str\n) -> float:\n    # 评估逻辑实现\n    return 0.75",
            "description": "用于评估提交的代码",
            "required": True,
        }
    },
    "description": "代码评估允许您用Python编写自定义评估器。",
}

2. 修正参数传递问题

需要确保评估函数正确接收和处理参数。评估函数应该如下实现:

def auto_custom_code_run(
    inputs: Dict[str, Any],
    output: str,
    data_point: Dict[str, Any],
    app_params: Dict[str, Any],
    settings_values: Dict[str, Any],
    lm_providers_keys: Dict[str, Any],
) -> Result:
    try:
        result = sandbox.execute_code_safely(
            app_params=app_params,
            inputs=inputs,
            output=output,
            code=settings_values["code"],
        )
        return Result(type="number", value=result)
    except Exception as e:
        return Result(
            type="error",
            value=None,
            error=Error(
                message="代码评估过程中发生错误",
                stacktrace=str(e)
            ),
        )

3. 前端适配

前端组件需要正确获取和显示评估结果。确保评估结果加载函数正确处理返回数据,特别是custom_code_eval_id字段的使用。

实施建议

  1. 首先更新评估器配置,确保direct_use属性正确设置
  2. 检查并修正评估函数的参数处理逻辑
  3. 验证前端组件是否正确处理评估结果
  4. 进行全面测试,确保修复后的功能在各种场景下都能正常工作

总结

代码评估功能失效问题主要是由于配置错误和参数传递不匹配导致的。通过修正评估器配置和调整参数处理逻辑,可以解决这一问题。建议开发团队在实施修复后进行全面的功能测试,确保评估功能的稳定性和可靠性。

对于使用Agenta项目的开发者,建议在自定义评估器时仔细检查配置参数,并确保前后端参数传递的一致性,以避免类似问题的发生。

登录后查看全文
热门项目推荐
相关项目推荐