Skip to content

Commit a10535d

Browse files
authored
feat(api): Add chat_dashboard support to V2 API (#2726)
1 parent 320228a commit a10535d

File tree

3 files changed

+17
-12
lines changed

3 files changed

+17
-12
lines changed

packages/dbgpt-app/src/dbgpt_app/openapi/api_v2.py

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -128,6 +128,7 @@ async def chat_completions(
128128
or request.chat_mode == ChatMode.CHAT_KNOWLEDGE.value
129129
or request.chat_mode == ChatMode.CHAT_DATA.value
130130
or request.chat_mode == ChatMode.CHAT_DB_QA.value
131+
or request.chat_mode == ChatMode.CHAT_DASHBOARD.value
131132
):
132133
with root_tracer.start_span(
133134
"get_chat_instance",
@@ -157,7 +158,7 @@ async def chat_completions(
157158
detail={
158159
"error": {
159160
"message": "chat mode now only support chat_normal, chat_app, "
160-
"chat_flow, chat_knowledge, chat_data",
161+
"chat_flow, chat_knowledge, chat_data, chat_dashboard",
161162
"type": "invalid_request_error",
162163
"param": None,
163164
"code": "invalid_chat_mode",

packages/dbgpt-client/src/dbgpt_client/schema.py

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -94,6 +94,7 @@ class ChatMode(Enum):
9494
CHAT_KNOWLEDGE = "chat_knowledge"
9595
CHAT_DATA = "chat_data"
9696
CHAT_DB_QA = "chat_with_db_qa"
97+
CHAT_DASHBOARD = "chat_dashboard"
9798

9899

99100
class AWELTeamModel(BaseModel):

packages/dbgpt-serve/src/dbgpt_serve/datasource/manages/connect_config_db.py

Lines changed: 14 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -202,7 +202,10 @@ def update_db_info(
202202
def get_db_config(self, db_name):
203203
"""Return db connect info by name."""
204204
session = self.get_raw_session()
205-
if db_name:
205+
try:
206+
if not db_name:
207+
raise ValueError("Database name cannot be empty")
208+
206209
select_statement = text(
207210
"""
208211
SELECT
@@ -216,16 +219,16 @@ def get_db_config(self, db_name):
216219
params = {"db_name": db_name}
217220
result = session.execute(select_statement, params)
218221

219-
else:
220-
raise ValueError("Cannot get database by name" + db_name)
221-
222-
logger.info(f"Result: {result}")
223-
fields = [field[0] for field in result.cursor.description]
224-
row_dict = {}
225-
row_1 = list(result.cursor.fetchall()[0])
226-
for i, field in enumerate(fields):
227-
row_dict[field] = row_1[i]
228-
return row_dict
222+
fields = [field[0] for field in result.cursor.description]
223+
224+
row = result.cursor.fetchone()
225+
if not row:
226+
logger.error(f"No database config found for db_name: {db_name}")
227+
raise ValueError(f"Database config not found for: {db_name}")
228+
229+
return {fields[i]: row[i] for i in range(len(fields))}
230+
finally:
231+
session.close()
229232

230233
def get_db_list(self, db_name: Optional[str] = None, user_id: Optional[str] = None):
231234
"""Get db list."""

0 commit comments

Comments
 (0)