Skip to content

源码中调用RolloutManager.preprocess_one方法出现报错 #231

@itlantu

Description

@itlantu

报错信息

processed_sample = processer.preprocess_one(sample, recorder)
Image
  • 终端提示
  File "C:\Users\IT_la\Desktop\mbpp_youtu\youtu-agent\utu\practice\rollout_manager.py", line 104, in preprocess_batch
    processed_sample = self.preprocess_one(sample, recorder)
  File "C:\Users\IT_la\Desktop\mbpp_youtu\youtu-agent\utu\practice\rollout_manager.py", line 112, in preprocess_one
    processed_sample = processer.preprocess_one(sample, recorder)
TypeError: BaseLLMJudgeProcesser.preprocess_one() takes 2 positional arguments but 3 were given

报错原因分析

`preprocess_one 函数的调用参数与定义的函数签名不匹配,导致调用时触发参数数量错误。

utu/eval/processer/base_processor.py中定义的基类BaseProcesser规定了所有子类必须实现的preprocess_one函数签名

class BaseProcesser:
    # 其他代码

    @abc.abstractmethod
    def preprocess_one(self, sample: EvaluationSample) -> EvaluationSample:
        """Preprocess a single sample."""
        raise NotImplementedError

utu/practice/rollout_manager.py中调用preprocess_one方法时,额外传入了recorder参数,导致参数数量超出定义

processed_sample = processer.preprocess_one(sample, recorder)

Metadata

Metadata

Assignees

Labels

No labels
No labels

Type

No type

Projects

No projects

Milestone

No milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions