Skip to content

Commit a64f2db

Browse files
perf: Byte type json error
1 parent 343d493 commit a64f2db

File tree

2 files changed

+20
-1
lines changed

2 files changed

+20
-1
lines changed

backend/apps/chat/task/llm.py

Lines changed: 5 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -38,7 +38,7 @@
3838
from apps.system.schemas.system_schema import AssistantOutDsSchema
3939
from common.core.config import settings
4040
from common.core.deps import CurrentAssistant, CurrentUser
41-
from common.utils.utils import SQLBotLogUtil, extract_nested_json
41+
from common.utils.utils import SQLBotLogUtil, extract_nested_json, prepare_for_orjson
4242

4343
warnings.filterwarnings("ignore")
4444

@@ -716,6 +716,10 @@ def save_error(self, message: str):
716716
return save_error_message(session=self.session, record_id=self.record.id, message=message)
717717

718718
def save_sql_data(self, data_obj: Dict[str, Any]):
719+
data_result = data_obj.get('data')
720+
if data_result:
721+
data_result = prepare_for_orjson(data_result)
722+
data_obj['data'] = data_result
719723
return save_sql_exec_data(session=self.session, record_id=self.record.id,
720724
data=orjson.dumps(data_obj).decode())
721725

backend/common/utils/utils.py

Lines changed: 15 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,4 @@
1+
import base64
12
import hashlib
23
import inspect
34
import logging
@@ -215,6 +216,20 @@ def critical(msg: str, *args, **kwargs):
215216
logger = SQLBotLogUtil._get_logger()
216217
if logger.isEnabledFor(logging.CRITICAL):
217218
logger._log(logging.CRITICAL, msg, args, **kwargs)
219+
220+
def prepare_for_orjson(data):
221+
if not data:
222+
return data
223+
if isinstance(data, bytes):
224+
return base64.b64encode(data).decode('utf-8')
225+
elif isinstance(data, dict):
226+
return {k: prepare_for_orjson(v) for k, v in data.items()}
227+
elif isinstance(data, (list, tuple)):
228+
return [prepare_for_orjson(item) for item in data]
229+
else:
230+
return data
231+
232+
218233

219234

220235

0 commit comments

Comments
 (0)