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