mirror of
https://github.com/csunny/DB-GPT.git
synced 2025-09-27 20:38:30 +00:00
refactor: Refactor storage and new serve template (#947)
This commit is contained in:
5
dbgpt/serve/core/__init__.py
Normal file
5
dbgpt/serve/core/__init__.py
Normal file
@@ -0,0 +1,5 @@
|
||||
from dbgpt.serve.core.schemas import Result
|
||||
from dbgpt.serve.core.config import BaseServeConfig
|
||||
from dbgpt.serve.core.service import BaseService
|
||||
|
||||
__ALL__ = ["Result", "BaseServeConfig", "BaseService"]
|
19
dbgpt/serve/core/config.py
Normal file
19
dbgpt/serve/core/config.py
Normal file
@@ -0,0 +1,19 @@
|
||||
from dataclasses import dataclass
|
||||
from dbgpt.component import AppConfig
|
||||
from dbgpt.util import BaseParameters
|
||||
|
||||
|
||||
@dataclass
|
||||
class BaseServeConfig(BaseParameters):
|
||||
"""Base configuration class for serve"""
|
||||
|
||||
@classmethod
|
||||
def from_app_config(cls, config: AppConfig, config_prefix: str):
|
||||
"""Create a configuration object from a dictionary
|
||||
|
||||
Args:
|
||||
config (AppConfig): Application configuration
|
||||
config_prefix (str): Configuration prefix
|
||||
"""
|
||||
config_dict = config.get_all_by_prefix(config_prefix)
|
||||
return cls(**config_dict)
|
38
dbgpt/serve/core/schemas.py
Normal file
38
dbgpt/serve/core/schemas.py
Normal file
@@ -0,0 +1,38 @@
|
||||
from typing import TypeVar, Generic, Any, Optional
|
||||
|
||||
from dbgpt._private.pydantic import BaseModel, Field
|
||||
|
||||
T = TypeVar("T")
|
||||
|
||||
|
||||
class Result(BaseModel, Generic[T]):
|
||||
"""Common result entity class"""
|
||||
|
||||
success: bool = Field(
|
||||
..., description="Whether it is successful, True: success, False: failure"
|
||||
)
|
||||
err_code: str | None = Field(None, description="Error code")
|
||||
err_msg: str | None = Field(None, description="Error message")
|
||||
data: T | None = Field(None, description="Return data")
|
||||
|
||||
@staticmethod
|
||||
def succ(data: T) -> "Result[T]":
|
||||
"""Build a successful result entity
|
||||
|
||||
Args:
|
||||
data (T): Return data
|
||||
|
||||
Returns:
|
||||
Result[T]: Result entity
|
||||
"""
|
||||
return Result(success=True, err_code=None, err_msg=None, data=data)
|
||||
|
||||
@staticmethod
|
||||
def failed(msg: str, err_code: Optional[str] = "E000X") -> "Result[Any]":
|
||||
"""Build a failed result entity
|
||||
|
||||
Args:
|
||||
msg (str): Error message
|
||||
err_code (Optional[str], optional): Error code. Defaults to "E000X".
|
||||
"""
|
||||
return Result(success=False, err_code=err_code, err_msg=msg, data=None)
|
33
dbgpt/serve/core/service.py
Normal file
33
dbgpt/serve/core/service.py
Normal file
@@ -0,0 +1,33 @@
|
||||
from abc import ABC, abstractmethod
|
||||
from typing import Generic
|
||||
from dbgpt.component import BaseComponent
|
||||
from dbgpt.storage.metadata._base_dao import BaseDao, T, REQ, RES
|
||||
from dbgpt.serve.core.config import BaseServeConfig
|
||||
|
||||
|
||||
class BaseService(BaseComponent, Generic[T, REQ, RES], ABC):
|
||||
name = "dbgpt_serve_base_service"
|
||||
|
||||
def __init__(self, system_app):
|
||||
super().__init__(system_app)
|
||||
|
||||
@property
|
||||
@abstractmethod
|
||||
def dao(self) -> BaseDao[T, REQ, RES]:
|
||||
"""Returns the internal DAO."""
|
||||
|
||||
@property
|
||||
@abstractmethod
|
||||
def config(self) -> BaseServeConfig:
|
||||
"""Returns the internal ServeConfig."""
|
||||
|
||||
def create(self, request: REQ) -> RES:
|
||||
"""Create a new entity
|
||||
|
||||
Args:
|
||||
request (REQ): The request
|
||||
|
||||
Returns:
|
||||
RES: The response
|
||||
"""
|
||||
return self.dao.create(request)
|
Reference in New Issue
Block a user