From 399754c6090bc90397f4b000e59395d1edf87de4 Mon Sep 17 00:00:00 2001 From: junjun Date: Fri, 25 Jul 2025 15:26:34 +0800 Subject: [PATCH 1/2] feat: ds check --- backend/apps/datasource/api/datasource.py | 13 +++++++++++-- backend/apps/datasource/crud/datasource.py | 4 ++-- 2 files changed, 13 insertions(+), 4 deletions(-) diff --git a/backend/apps/datasource/api/datasource.py b/backend/apps/datasource/api/datasource.py index a52ffc8b..e8e417f9 100644 --- a/backend/apps/datasource/api/datasource.py +++ b/backend/apps/datasource/api/datasource.py @@ -8,6 +8,7 @@ from fastapi import APIRouter, File, UploadFile, HTTPException from apps.db.engine import create_table, get_data_engine, insert_data from common.core.deps import SessionDep, CurrentUser, Trans +from common.utils.utils import SQLBotLogUtil from ..crud.datasource import get_datasource_list, check_status, create_ds, update_ds, delete_ds, getTables, getFields, \ execSql, update_table_and_fields, getTablesByDs, chooseTables, preview, updateTable, updateField, get_ds, fieldEnum from ..crud.field import get_fields_by_table_id @@ -60,7 +61,11 @@ async def get_tables(session: SessionDep, id: int): @router.post("/getTablesByConf") async def get_tables_by_conf(session: SessionDep, ds: CoreDatasource): - return getTablesByDs(session, ds) + try: + return getTablesByDs(session, ds) + except Exception as e: + SQLBotLogUtil.error(f"get table failed: {e}") + raise HTTPException(status_code=500, detail=f'Get table Failed: {e.args}') @router.post("/getFields/{id}/{table_name}") @@ -100,7 +105,11 @@ async def edit_field(session: SessionDep, field: CoreField): @router.post("/previewData/{id}") async def edit_local(session: SessionDep, current_user: CurrentUser, id: int, data: TableObj): - return preview(session, current_user, id, data) + try: + return preview(session, current_user, id, data) + except Exception as e: + SQLBotLogUtil.error(f"Preview failed: {e}") + raise HTTPException(status_code=500, detail=f'Preview Failed: {e.args}') @router.post("/fieldEnum/{id}") diff --git a/backend/apps/datasource/crud/datasource.py b/backend/apps/datasource/crud/datasource.py index 2e461291..b12b2f51 100644 --- a/backend/apps/datasource/crud/datasource.py +++ b/backend/apps/datasource/crud/datasource.py @@ -134,7 +134,7 @@ def getTables(session: SessionDep, id: int): def getTablesByDs(session: SessionDep, ds: CoreDatasource): - check_status(session, ds, True) + # check_status(session, ds, True) tables = get_tables(ds) return tables @@ -241,7 +241,7 @@ def updateField(session: SessionDep, field: CoreField): def preview(session: SessionDep, current_user: CurrentUser, id: int, data: TableObj): ds = session.query(CoreDatasource).filter(CoreDatasource.id == id).first() - check_status(session, ds, True) + # check_status(session, ds, True) if data.fields is None or len(data.fields) == 0: return {"fields": [], "data": [], "sql": ''} From ceff988eee088a0bd2445162e7a85e972c81b933 Mon Sep 17 00:00:00 2001 From: ulleo Date: Fri, 25 Jul 2025 15:28:18 +0800 Subject: [PATCH 2/2] feat: chart json axis value to lowercase --- backend/apps/chat/task/llm.py | 10 ++++++++++ 1 file changed, 10 insertions(+) diff --git a/backend/apps/chat/task/llm.py b/backend/apps/chat/task/llm.py index fe0dd7bd..679717cb 100644 --- a/backend/apps/chat/task/llm.py +++ b/backend/apps/chat/task/llm.py @@ -662,6 +662,16 @@ class LLMService: if data['type'] and data['type'] != 'error': # todo type check chart = data + if chart.get('columns'): + for v in chart.get('columns'): + v['value'] = v.get('value').lower() + if chart.get('axis'): + if chart.get('axis').get('x'): + chart.get('axis').get('x')['value'] = chart.get('axis').get('x').get('value').lower() + if chart.get('axis').get('y'): + chart.get('axis').get('y')['value'] = chart.get('axis').get('y').get('value').lower() + if chart.get('axis').get('series'): + chart.get('axis').get('series')['value'] = chart.get('axis').get('series').get('value').lower() elif data['type'] == 'error': message = data['reason'] error = True