Bases: ABC
LazyLLM 提供的钩子系统抽象基类,用于在函数或方法执行前后插入自定义逻辑。
此类是一个抽象基类(ABC),定义了钩子系统的基本接口。通过继承此类并实现其抽象方法,可以创建自定义的钩子来监控、记录或修改函数执行过程。
Parameters:
-
obj
–
要监控的对象(通常是函数或方法)。此对象会被存储在钩子实例中,供其他方法使用。
注意: 此类是抽象基类,不能直接实例化。必须继承此类并实现所有抽象方法才能使用。
Source code in lazyllm/hook.py
| class LazyLLMHook(ABC):
"""LazyLLM 提供的钩子系统抽象基类,用于在函数或方法执行前后插入自定义逻辑。
此类是一个抽象基类(ABC),定义了钩子系统的基本接口。通过继承此类并实现其抽象方法,可以创建自定义的钩子来监控、记录或修改函数执行过程。
Args:
obj: 要监控的对象(通常是函数或方法)。此对象会被存储在钩子实例中,供其他方法使用。
**注意**: 此类是抽象基类,不能直接实例化。必须继承此类并实现所有抽象方法才能使用。
"""
@abstractmethod
def __init__(self, obj):
pass
@abstractmethod
def pre_hook(self, *args, **kwargs):
"""前置钩子方法,在函数执行前调用。
Args:
*args: 传递给被监控函数的参数
**kwargs: 传递给被监控函数的关键字参数
"""
pass
@abstractmethod
def post_hook(self, output):
"""后置钩子方法,在函数执行后调用。
Args:
output: 被监控函数的返回值
**Returns:**
- 处理后的输出值。通常返回原始输出,但也可以修改或包装输出。
"""
pass
@abstractmethod
def report():
"""生成钩子执行报告。
**Returns:**
- 钩子执行的相关信息或统计数据。
"""
pass
|
post_hook(output)
abstractmethod
后置钩子方法,在函数执行后调用。
Parameters:
Returns:
- 处理后的输出值。通常返回原始输出,但也可以修改或包装输出。
Source code in lazyllm/hook.py
| @abstractmethod
def post_hook(self, output):
"""后置钩子方法,在函数执行后调用。
Args:
output: 被监控函数的返回值
**Returns:**
- 处理后的输出值。通常返回原始输出,但也可以修改或包装输出。
"""
pass
|
pre_hook(*args, **kwargs)
abstractmethod
前置钩子方法,在函数执行前调用。
Parameters:
Source code in lazyllm/hook.py
| @abstractmethod
def pre_hook(self, *args, **kwargs):
"""前置钩子方法,在函数执行前调用。
Args:
*args: 传递给被监控函数的参数
**kwargs: 传递给被监控函数的关键字参数
"""
pass
|
report()
abstractmethod
生成钩子执行报告。
Returns:
Source code in lazyllm/hook.py
| @abstractmethod
def report():
"""生成钩子执行报告。
**Returns:**
- 钩子执行的相关信息或统计数据。
"""
pass
|