Преглед изворни кода

refactor: update Callback to an abstract class (#8868)

zhuhao пре 6 месеци
родитељ
комит
f97607370a
1 измењених фајлова са 6 додато и 1 уклоњено
  1. 6 1
      api/core/model_runtime/callbacks/base_callback.py

+ 6 - 1
api/core/model_runtime/callbacks/base_callback.py

@@ -1,3 +1,4 @@
+from abc import ABC, abstractmethod
 from typing import Optional
 
 from core.model_runtime.entities.llm_entities import LLMResult, LLMResultChunk
@@ -13,7 +14,7 @@ _TEXT_COLOR_MAPPING = {
 }
 
 
-class Callback:
+class Callback(ABC):
     """
     Base class for callbacks.
     Only for LLM.
@@ -21,6 +22,7 @@ class Callback:
 
     raise_error: bool = False
 
+    @abstractmethod
     def on_before_invoke(
         self,
         llm_instance: AIModel,
@@ -48,6 +50,7 @@ class Callback:
         """
         raise NotImplementedError()
 
+    @abstractmethod
     def on_new_chunk(
         self,
         llm_instance: AIModel,
@@ -77,6 +80,7 @@ class Callback:
         """
         raise NotImplementedError()
 
+    @abstractmethod
     def on_after_invoke(
         self,
         llm_instance: AIModel,
@@ -106,6 +110,7 @@ class Callback:
         """
         raise NotImplementedError()
 
+    @abstractmethod
     def on_invoke_error(
         self,
         llm_instance: AIModel,