diff --git a/backend/apps/chat/task/llm.py b/backend/apps/chat/task/llm.py index 353df4ee..95e92fe7 100644 --- a/backend/apps/chat/task/llm.py +++ b/backend/apps/chat/task/llm.py @@ -744,9 +744,14 @@ class LLMService: def save_sql_data(self, data_obj: Dict[str, Any]): try: data_result = data_obj.get('data') + limit = 1000 if data_result: data_result = prepare_for_orjson(data_result) - data_obj['data'] = data_result + if data_result and len(data_result) > limit: + data_obj['data'] = data_result[:limit] + data_obj['limit'] = limit + else: + data_obj['data'] = data_result return save_sql_exec_data(session=self.session, record_id=self.record.id, data=orjson.dumps(data_obj).decode()) except Exception as e: diff --git a/frontend/src/i18n/en.json b/frontend/src/i18n/en.json index ce90511c..3be3aeca 100644 --- a/frontend/src/i18n/en.json +++ b/frontend/src/i18n/en.json @@ -541,6 +541,7 @@ "thinking": "Thinking", "data_analysis": "Data Analysis", "data_predict": "Data Prediction", + "data_over_limit": "The data is too large, only the first {0} entries are displayed.", "ds_is_invalid": "Datasource is invalid", "error": "Error", "no_data": "No Data", @@ -602,4 +603,4 @@ "setting_successfully": "Setting Successfully", "customize_theme_color": "Customize theme color" } -} \ No newline at end of file +} diff --git a/frontend/src/i18n/zh-CN.json b/frontend/src/i18n/zh-CN.json index 8235df5c..ccc2267c 100644 --- a/frontend/src/i18n/zh-CN.json +++ b/frontend/src/i18n/zh-CN.json @@ -541,6 +541,7 @@ "thinking": "思考中", "data_analysis": "数据分析", "data_predict": "数据预测", + "data_over_limit": "数据量过大,仅展示前{0}条数据", "ds_is_invalid": "数据源无效", "error": "错误", "no_data": "暂无数据", @@ -602,4 +603,4 @@ "setting_successfully": "设置成功", "customize_theme_color": "自定义主题色" } -} \ No newline at end of file +} diff --git a/frontend/src/views/chat/chat-block/ChartBlock.vue b/frontend/src/views/chat/chat-block/ChartBlock.vue index 2d27e1aa..e961cf7b 100644 --- a/frontend/src/views/chat/chat-block/ChartBlock.vue +++ b/frontend/src/views/chat/chat-block/ChartBlock.vue @@ -49,6 +49,7 @@ const emits = defineEmits(['exitFullScreen']) const dataObject = computed<{ fields: Array data: Array<{ [key: string]: any }> + limit: number | undefined }>(() => { if (props.message?.record?.data) { if (typeof props.message?.record?.data === 'string') { @@ -423,15 +424,20 @@ watch( -
- -
+