mirror of
https://github.com/csunny/DB-GPT.git
synced 2025-08-05 02:20:08 +00:00
fix(agent): Fix load db models error (#2290)
This commit is contained in:
parent
22249840de
commit
ddfb435fd4
@ -5,13 +5,16 @@ import uuid
|
|||||||
from typing import Any, Dict, List, Optional, Tuple, Type, cast
|
from typing import Any, Dict, List, Optional, Tuple, Type, cast
|
||||||
|
|
||||||
from dbgpt.agent import AgentMessage, ConversableAgent
|
from dbgpt.agent import AgentMessage, ConversableAgent
|
||||||
from dbgpt.serve.agent.agents.app_agent_manage import get_app_manager
|
|
||||||
from dbgpt.util import ParameterDescription
|
from dbgpt.util import ParameterDescription
|
||||||
|
|
||||||
from .base import Resource, ResourceParameters, ResourceType
|
from .base import Resource, ResourceParameters, ResourceType
|
||||||
|
|
||||||
|
|
||||||
def _get_app_list():
|
def _get_app_list():
|
||||||
|
# TODO: Don't import dbgpt.serve in dbgpt.agent module
|
||||||
|
from dbgpt.serve.agent.agents.app_agent_manage import get_app_manager
|
||||||
|
|
||||||
|
# Only call this function when the system app is initialized
|
||||||
apps = get_app_manager().get_dbgpts()
|
apps = get_app_manager().get_dbgpts()
|
||||||
results = [
|
results = [
|
||||||
{
|
{
|
||||||
@ -24,8 +27,11 @@ def _get_app_list():
|
|||||||
return results
|
return results
|
||||||
|
|
||||||
|
|
||||||
|
def _create_app_resource_parameters() -> Type[ResourceParameters]:
|
||||||
|
"""Create AppResourceParameters."""
|
||||||
|
|
||||||
@dataclasses.dataclass
|
@dataclasses.dataclass
|
||||||
class AppResourceParameters(ResourceParameters):
|
class _DynAppResourceParameters(ResourceParameters):
|
||||||
"""Application resource class."""
|
"""Application resource class."""
|
||||||
|
|
||||||
app_code: str = dataclasses.field(
|
app_code: str = dataclasses.field(
|
||||||
@ -38,7 +44,7 @@ class AppResourceParameters(ResourceParameters):
|
|||||||
@classmethod
|
@classmethod
|
||||||
def to_configurations(
|
def to_configurations(
|
||||||
cls,
|
cls,
|
||||||
parameters: Type["AppResourceParameters"],
|
parameters: Type["ResourceParameters"],
|
||||||
version: Optional[str] = None,
|
version: Optional[str] = None,
|
||||||
**kwargs,
|
**kwargs,
|
||||||
) -> Any:
|
) -> Any:
|
||||||
@ -63,14 +69,21 @@ class AppResourceParameters(ResourceParameters):
|
|||||||
copied_data = data.copy()
|
copied_data = data.copy()
|
||||||
if "app_code" not in copied_data and "value" in copied_data:
|
if "app_code" not in copied_data and "value" in copied_data:
|
||||||
copied_data["app_code"] = copied_data.pop("value")
|
copied_data["app_code"] = copied_data.pop("value")
|
||||||
return super().from_dict(copied_data, ignore_extra_fields=ignore_extra_fields)
|
return super().from_dict(
|
||||||
|
copied_data, ignore_extra_fields=ignore_extra_fields
|
||||||
|
)
|
||||||
|
|
||||||
|
return _DynAppResourceParameters
|
||||||
|
|
||||||
|
|
||||||
class AppResource(Resource[AppResourceParameters]):
|
class AppResource(Resource[ResourceParameters]):
|
||||||
"""AppResource resource class."""
|
"""AppResource resource class."""
|
||||||
|
|
||||||
def __init__(self, name: str, app_code: str, **kwargs):
|
def __init__(self, name: str, app_code: str, **kwargs):
|
||||||
"""Initialize AppResource resource."""
|
"""Initialize AppResource resource."""
|
||||||
|
# TODO: Don't import dbgpt.serve in dbgpt.agent module
|
||||||
|
from dbgpt.serve.agent.agents.app_agent_manage import get_app_manager
|
||||||
|
|
||||||
self._resource_name = name
|
self._resource_name = name
|
||||||
self._app_code = app_code
|
self._app_code = app_code
|
||||||
|
|
||||||
@ -101,7 +114,7 @@ class AppResource(Resource[AppResourceParameters]):
|
|||||||
@classmethod
|
@classmethod
|
||||||
def resource_parameters_class(cls, **kwargs) -> Type[ResourceParameters]:
|
def resource_parameters_class(cls, **kwargs) -> Type[ResourceParameters]:
|
||||||
"""Return the resource parameters class."""
|
"""Return the resource parameters class."""
|
||||||
return AppResourceParameters
|
return _create_app_resource_parameters()
|
||||||
|
|
||||||
async def get_prompt(
|
async def get_prompt(
|
||||||
self,
|
self,
|
||||||
@ -172,6 +185,9 @@ async def _start_app(
|
|||||||
conv_uid: Optional[str] = None,
|
conv_uid: Optional[str] = None,
|
||||||
) -> AgentMessage:
|
) -> AgentMessage:
|
||||||
"""Start App By AppResource."""
|
"""Start App By AppResource."""
|
||||||
|
# TODO: Don't import dbgpt.serve in dbgpt.agent module
|
||||||
|
from dbgpt.serve.agent.agents.app_agent_manage import get_app_manager
|
||||||
|
|
||||||
conv_uid = str(uuid.uuid4()) if conv_uid is None else conv_uid
|
conv_uid = str(uuid.uuid4()) if conv_uid is None else conv_uid
|
||||||
gpts_app = get_app_manager().get_app(app_code)
|
gpts_app = get_app_manager().get_app(app_code)
|
||||||
app_agent = await get_app_manager().create_agent_by_app_code(
|
app_agent = await get_app_manager().create_agent_by_app_code(
|
||||||
|
@ -107,6 +107,18 @@ class MultiAgents(BaseComponent, ABC):
|
|||||||
super().__init__(system_app)
|
super().__init__(system_app)
|
||||||
self.system_app = system_app
|
self.system_app = system_app
|
||||||
|
|
||||||
|
def on_init(self):
|
||||||
|
"""Called when init the application.
|
||||||
|
|
||||||
|
Import your own module here to ensure the module is loaded before the application starts
|
||||||
|
"""
|
||||||
|
from ..db.gpts_app import (
|
||||||
|
GptsAppCollectionEntity,
|
||||||
|
GptsAppDetailEntity,
|
||||||
|
GptsAppEntity,
|
||||||
|
UserRecentAppsEntity,
|
||||||
|
)
|
||||||
|
|
||||||
def get_dbgpts(self, user_code: str = None, sys_code: str = None):
|
def get_dbgpts(self, user_code: str = None, sys_code: str = None):
|
||||||
apps = self.gpts_app.app_list(
|
apps = self.gpts_app.app_list(
|
||||||
GptsAppQuery(user_code=user_code, sys_code=sys_code)
|
GptsAppQuery(user_code=user_code, sys_code=sys_code)
|
||||||
|
Loading…
Reference in New Issue
Block a user