|
|
from abc import ABC |
|
|
|
|
|
from ..exceptions.exceptions import InputErrorException |
|
|
from ..schemas import BaseCompletion |
|
|
|
|
|
|
|
|
class BaseLLM(ABC): |
|
|
|
|
|
def __init__(self, model_name: str, params: dict, **kwargs): |
|
|
self.__model_name = model_name |
|
|
self.__params = params |
|
|
|
|
|
@classmethod |
|
|
async def create(cls, config_data: dict): |
|
|
pass |
|
|
|
|
|
@property |
|
|
def model_name(self) -> str: |
|
|
return self.__model_name |
|
|
|
|
|
@model_name.setter |
|
|
def model_name(self, model_name): |
|
|
if model_name is None: |
|
|
raise InputErrorException("Invalid model_name {}".format(model_name)) |
|
|
self.__model_name = model_name |
|
|
|
|
|
@property |
|
|
def params(self) -> dict: |
|
|
return self.__params |
|
|
|
|
|
def completion(self, prompt) -> BaseCompletion: |
|
|
pass |
|
|
|
|
|
async def async_completion(self, prompt) -> BaseCompletion: |
|
|
pass |
|
|
|
|
|
|