mirror of
https://github.com/csunny/DB-GPT.git
synced 2025-07-31 07:34:07 +00:00
feat(api): Add chat_dashboard support to V2 API (#2726)
This commit is contained in:
parent
320228ae37
commit
a10535d944
@ -128,6 +128,7 @@ async def chat_completions(
|
||||
or request.chat_mode == ChatMode.CHAT_KNOWLEDGE.value
|
||||
or request.chat_mode == ChatMode.CHAT_DATA.value
|
||||
or request.chat_mode == ChatMode.CHAT_DB_QA.value
|
||||
or request.chat_mode == ChatMode.CHAT_DASHBOARD.value
|
||||
):
|
||||
with root_tracer.start_span(
|
||||
"get_chat_instance",
|
||||
@ -157,7 +158,7 @@ async def chat_completions(
|
||||
detail={
|
||||
"error": {
|
||||
"message": "chat mode now only support chat_normal, chat_app, "
|
||||
"chat_flow, chat_knowledge, chat_data",
|
||||
"chat_flow, chat_knowledge, chat_data, chat_dashboard",
|
||||
"type": "invalid_request_error",
|
||||
"param": None,
|
||||
"code": "invalid_chat_mode",
|
||||
|
@ -94,6 +94,7 @@ class ChatMode(Enum):
|
||||
CHAT_KNOWLEDGE = "chat_knowledge"
|
||||
CHAT_DATA = "chat_data"
|
||||
CHAT_DB_QA = "chat_with_db_qa"
|
||||
CHAT_DASHBOARD = "chat_dashboard"
|
||||
|
||||
|
||||
class AWELTeamModel(BaseModel):
|
||||
|
@ -202,7 +202,10 @@ class ConnectConfigDao(BaseDao):
|
||||
def get_db_config(self, db_name):
|
||||
"""Return db connect info by name."""
|
||||
session = self.get_raw_session()
|
||||
if db_name:
|
||||
try:
|
||||
if not db_name:
|
||||
raise ValueError("Database name cannot be empty")
|
||||
|
||||
select_statement = text(
|
||||
"""
|
||||
SELECT
|
||||
@ -216,16 +219,16 @@ class ConnectConfigDao(BaseDao):
|
||||
params = {"db_name": db_name}
|
||||
result = session.execute(select_statement, params)
|
||||
|
||||
else:
|
||||
raise ValueError("Cannot get database by name" + db_name)
|
||||
fields = [field[0] for field in result.cursor.description]
|
||||
|
||||
logger.info(f"Result: {result}")
|
||||
fields = [field[0] for field in result.cursor.description]
|
||||
row_dict = {}
|
||||
row_1 = list(result.cursor.fetchall()[0])
|
||||
for i, field in enumerate(fields):
|
||||
row_dict[field] = row_1[i]
|
||||
return row_dict
|
||||
row = result.cursor.fetchone()
|
||||
if not row:
|
||||
logger.error(f"No database config found for db_name: {db_name}")
|
||||
raise ValueError(f"Database config not found for: {db_name}")
|
||||
|
||||
return {fields[i]: row[i] for i in range(len(fields))}
|
||||
finally:
|
||||
session.close()
|
||||
|
||||
def get_db_list(self, db_name: Optional[str] = None, user_id: Optional[str] = None):
|
||||
"""Get db list."""
|
||||
|
Loading…
Reference in New Issue
Block a user