from abc import ABC, abstractmethod from typing import Optional, List import traceback from collections import deque from queue import Queue from threading import Thread import torch import transformers from models.loader import LoaderCheckPoint class AnswerResult: """ 消息实体 """ history: List[List[str]] = [] llm_output: Optional[dict] = None class BaseAnswer(ABC): """上层业务包装器.用于结果生成统一api调用""" @property @abstractmethod def _check_point(self) -> LoaderCheckPoint: """Return _check_point of llm.""" @property @abstractmethod def _history_len(self) -> int: """Return _history_len of llm.""" @abstractmethod def set_history_len(self, history_len: int) -> None: """Return _history_len of llm.""" def generatorAnswer(self, prompt: str, history: List[List[str]] = [], streaming: bool = False): pass