@@ -126,23 +126,41 @@ def get_chart_config(session: SessionDep, chart_record_id: int):
126126 return {}
127127
128128
129- def format_chart_fields (chart_info : dict ):
129+ def _format_column (column : dict ) -> str :
130+ """格式化单个column字段"""
131+ value = column .get ('value' , '' )
132+ name = column .get ('name' , '' )
133+ if value != name and name :
134+ return f"{ value } ({ name } )"
135+ return value
136+
137+
138+ def format_chart_fields (chart_info : dict ) -> list :
130139 fields = []
131- if chart_info .get ('columns' ) and len (chart_info .get ('columns' )) > 0 :
132- for column in chart_info .get ('columns' ):
133- column_str = column .get ('value' )
134- if column .get ('value' ) != column .get ('name' ):
135- column_str = column_str + '(' + column .get ('name' ) + ')'
136- fields .append (column_str )
137- if chart_info .get ('axis' ):
138- for _type in ['x' , 'y' , 'series' ]:
139- if chart_info .get ('axis' ).get (_type ):
140- column = chart_info .get ('axis' ).get (_type )
141- column_str = column .get ('value' )
142- if column .get ('value' ) != column .get ('name' ):
143- column_str = column_str + '(' + column .get ('name' ) + ')'
144- fields .append (column_str )
145- return fields
140+
141+ # 处理 columns
142+ for column in chart_info .get ('columns' ) or []:
143+ fields .append (_format_column (column ))
144+
145+ # 处理 axis
146+ if axis := chart_info .get ('axis' ):
147+ # 处理 x 轴
148+ if x_axis := axis .get ('x' ):
149+ fields .append (_format_column (x_axis ))
150+
151+ # 处理 y 轴
152+ if y_axis := axis .get ('y' ):
153+ if isinstance (y_axis , list ):
154+ for column in y_axis :
155+ fields .append (_format_column (column ))
156+ else :
157+ fields .append (_format_column (y_axis ))
158+
159+ # 处理 series
160+ if series := axis .get ('series' ):
161+ fields .append (_format_column (series ))
162+
163+ return [field for field in fields if field ] # 过滤空字符串
146164
147165
148166def get_last_execute_sql_error (session : SessionDep , chart_id : int ):
@@ -410,6 +428,11 @@ def format_record(record: ChatRecordResult):
410428 _dict ['sql' ] = sqlparse .format (record .sql , reindent = True )
411429 except Exception :
412430 pass
431+ # 去除返回前端多余的字段
432+ _dict .pop ('sql_reasoning_content' , None )
433+ _dict .pop ('chart_reasoning_content' , None )
434+ _dict .pop ('analysis_reasoning_content' , None )
435+ _dict .pop ('predict_reasoning_content' , None )
413436
414437 return _dict
415438
0 commit comments