Source code for langchain_experimental.tot.checker

from abc import ABC, abstractmethod
from typing import Any, Dict, List, Optional, Tuple

from langchain.chains.base import Chain
from langchain_core.callbacks.manager import CallbackManagerForChainRun

from langchain_experimental.tot.thought import ThoughtValidity


[docs]class ToTChecker(Chain, ABC): """思维树(ToT)检查器。 这是一个抽象的ToT检查器,必须由用户实现。您可以实现一个简单的基于规则的检查器,也可以实现一个更复杂的基于神经网络的分类器。""" output_key: str = "validity" #: :meta private: @property def input_keys(self) -> List[str]: """检查器输入键。 :元数据 私有: """ return ["problem_description", "thoughts"] @property def output_keys(self) -> List[str]: """检查器输出的键。 :元数据 私有: """ return [self.output_key]
[docs] @abstractmethod def evaluate( self, problem_description: str, thoughts: Tuple[str, ...] = (), ) -> ThoughtValidity: """ 评估问题描述的响应并返回解决方案类型。 """
def _call( self, inputs: Dict[str, Any], run_manager: Optional[CallbackManagerForChainRun] = None, ) -> Dict[str, ThoughtValidity]: return {self.output_key: self.evaluate(**inputs)}