QChatGPT/pkg/pipeline/stage.py
2024-01-26 15:51:49 +08:00

44 lines
782 B
Python

from __future__ import annotations
import abc
from ..core import app, entities as core_entities
from . import entities
_stage_classes: dict[str, PipelineStage] = {}
def stage_class(name: str):
def decorator(cls):
_stage_classes[name] = cls
return cls
return decorator
class PipelineStage(metaclass=abc.ABCMeta):
"""流水线阶段
"""
ap: app.Application
def __init__(self, ap: app.Application):
self.ap = ap
async def initialize(self):
"""初始化
"""
pass
@abc.abstractmethod
async def process(
self,
query: core_entities.Query,
stage_inst_name: str,
) -> entities.StageProcessResult:
"""处理
"""
raise NotImplementedError