Преглед на файлове

为ask api增加一个summary的返回。

wangxq преди 1 месец
родител
ревизия
0391d60ad2
променени са 1 файла, в които са добавени 36 реда и са изтрити 17 реда
  1. 36 17
      citu_app.py

+ 36 - 17
citu_app.py

@@ -45,25 +45,44 @@ def ask_full():
             browser_session_id=browser_session_id
         )
 
-    sql, df, fig = vn.ask(
-        question=question,
-        print_results=False,
-        visualize=True,
-        allow_llm_to_see_data=True
-    )
+    try:
+        sql, df, fig = vn.ask(
+            question=question,
+            print_results=False,
+            visualize=False,
+            allow_llm_to_see_data=True
+        )
 
-    rows, columns = [], []
-    if isinstance(df, pd.DataFrame) and not df.empty:
-        rows = df.head(1000).to_dict(orient="records")
-        columns = list(df.columns)
+        rows, columns = [], []
+        summary = None
+        
+        if isinstance(df, pd.DataFrame) and not df.empty:
+            rows = df.head(1000).to_dict(orient="records")
+            columns = list(df.columns)
+            
+            # 生成数据摘要
+            try:
+                summary = vn.generate_summary(question=question, df=df)
+                print(f"[INFO] 成功生成摘要: {summary}")
+            except Exception as e:
+                print(f"[WARNING] 生成摘要失败: {str(e)}")
+                summary = None
 
-    return jsonify(result.success(data={
-        "sql": sql,
-        "rows": rows,
-        "columns": columns,
-        "conversation_id": conversation_id if 'conversation_id' in locals() else None,
-        "session_id": browser_session_id
-    }))
+        return jsonify(result.success(data={
+            "sql": sql,
+            "rows": rows,
+            "columns": columns,
+            "summary": summary,  # 添加摘要到返回结果
+            "conversation_id": conversation_id if 'conversation_id' in locals() else None,
+            "session_id": browser_session_id
+        }))
+        
+    except Exception as e:
+        print(f"[ERROR] ask_full执行失败: {str(e)}")
+        return jsonify(result.failed(
+            message=f"查询处理失败: {str(e)}", 
+            code=500
+        )), 500
 
 
 @app.flask_app.route('/api/v1/citu_train_question_sql', methods=['POST'])