mirror of
https://gh-proxy.org/https://github.com/klinsmaya/SQLBot.git
synced 2026-11-08 01:06:59 +08:00
feat: chart & export Excel support large number data
#233 fix get predict data error
This commit is contained in:
@@ -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)
|
||||
|
||||
|
||||
@@ -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):
|
||||
|
||||
Reference in New Issue
Block a user