feat: chart & export Excel support large number data

#233
fix get predict data error
This commit is contained in:
ulleo
2025-10-22 17:03:19 +08:00
committed by ulleo
parent e8bdb72a4e
commit 632076d82f
2 changed files with 12 additions and 5 deletions
+2 -2
View File
@@ -10,7 +10,7 @@ from sqlalchemy import and_, select
from apps.chat.curd.chat import list_chats, get_chat_with_records, create_chat, rename_chat, \
delete_chat, get_chat_chart_data, get_chat_predict_data, get_chat_with_records_with_data, get_chat_record_by_id, \
format_json_data
format_json_data, format_json_list_data
from apps.chat.models.chat_model import CreateChat, ChatRecord, RenameChat, ChatQuestion, ExcelData
from apps.chat.task.llm import LLMService
from common.core.deps import CurrentAssistant, SessionDep, CurrentUser, Trans
@@ -55,7 +55,7 @@ async def chat_record_data(session: SessionDep, chart_record_id: int):
async def chat_predict_data(session: SessionDep, chart_record_id: int):
def inner():
data = get_chat_predict_data(chart_record_id=chart_record_id, session=session)
return format_json_data(data)
return format_json_list_data(data)
return await asyncio.to_thread(inner)
+10 -3
View File
@@ -88,8 +88,16 @@ def get_last_execute_sql_error(session: SessionDep, chart_id: int):
def format_json_data(origin_data: dict):
result = {'fields': origin_data.get('fields') if origin_data.get('fields') else []}
_list = origin_data.get('data') if origin_data.get('data') else []
data = format_json_list_data(_list)
result['data'] = data
return result
def format_json_list_data(origin_data: list[dict]):
data = []
for _data in origin_data.get('data') if origin_data.get('data') else []:
for _data in origin_data if origin_data else []:
_row = {}
for key, value in _data.items():
if value is not None:
@@ -105,9 +113,8 @@ def format_json_data(origin_data: dict):
value = str(value)
_row[key] = value
data.append(_row)
result['data'] = data
return result
return data
def get_chat_chart_data(session: SessionDep, chart_record_id: int):