JC321 commited on
Commit
0636e8a
·
verified ·
1 Parent(s): a5e1b21

Upload app.py

Browse files
Files changed (1) hide show
  1. app.py +46 -2
app.py CHANGED
@@ -243,24 +243,46 @@ def query_financial_data(company_name, query_type):
243
  timeout=60
244
  )
245
 
 
 
 
246
  if metrics_resp.status_code != 200:
247
  return result + f"❌ Server Error: HTTP {metrics_resp.status_code}\n\n{metrics_resp.text[:500]}"
248
 
249
  try:
250
  metrics_result = metrics_resp.json()
 
 
 
 
251
  # 使用统一的 MCP 响应解析函数
252
  metrics = parse_mcp_response(metrics_result)
 
 
 
 
 
 
 
253
  except (ValueError, KeyError, json.JSONDecodeError) as e:
254
- return result + f"❌ JSON Parse Error: {str(e)}\n\n{metrics_resp.text[:500]}"
255
 
256
  if isinstance(metrics, dict) and metrics.get("error"):
257
  return result + f"❌ {metrics['error']}"
258
 
 
 
 
 
259
  result += f"## 3-Year Financial Trends ({metrics.get('periods', 0)} periods)\n\n"
260
 
261
  # 显示所有数据(包括年度和季度)
262
  all_data = metrics.get('data', []) # MCP Server 返回的字段是 'data'
263
 
 
 
 
 
264
  # 去重:根据period和source_form去重
265
  seen = set()
266
  unique_data = []
@@ -325,22 +347,44 @@ def query_financial_data(company_name, query_type):
325
  timeout=60
326
  )
327
 
 
 
 
328
  if metrics_resp.status_code != 200:
329
  return result + f"❌ Server Error: HTTP {metrics_resp.status_code}\n\n{metrics_resp.text[:500]}"
330
 
331
  try:
332
  metrics_result = metrics_resp.json()
 
 
 
 
333
  # 使用统一的 MCP 响应解析函数
334
  metrics = parse_mcp_response(metrics_result)
 
 
 
 
 
 
 
335
  except (ValueError, KeyError, json.JSONDecodeError) as e:
336
- return result + f"❌ JSON Parse Error: {str(e)}\n\n{metrics_resp.text[:500]}"
337
 
338
  if isinstance(metrics, dict) and metrics.get("error"):
339
  return result + f"❌ {metrics['error']}"
340
 
 
 
 
 
341
  # 显示所有数据(包括年度和季度)
342
  all_data = metrics.get('data', []) # MCP Server 返回的字段是 'data'
343
 
 
 
 
 
344
  # 去重:根据period和source_form去���
345
  seen = set()
346
  unique_data = []
 
243
  timeout=60
244
  )
245
 
246
+ # 调试:显示 HTTP 响应状态
247
+ result += f"\n**Debug Info (3-Year)**:\n- HTTP Status: {metrics_resp.status_code}\n"
248
+
249
  if metrics_resp.status_code != 200:
250
  return result + f"❌ Server Error: HTTP {metrics_resp.status_code}\n\n{metrics_resp.text[:500]}"
251
 
252
  try:
253
  metrics_result = metrics_resp.json()
254
+ # 调试:显示原始 JSON 响应
255
+ result += f"- Raw Response Length: {len(metrics_resp.text)} chars\n"
256
+ result += f"- Response Preview: {metrics_resp.text[:200]}...\n\n"
257
+
258
  # 使用统一的 MCP 响应解析函数
259
  metrics = parse_mcp_response(metrics_result)
260
+
261
+ # 调试:显示解析后的数据类型和内容
262
+ result += f"- Parsed Type: {type(metrics).__name__}\n"
263
+ if isinstance(metrics, dict):
264
+ result += f"- Parsed Keys: {list(metrics.keys())}\n"
265
+ result += f"- Periods: {metrics.get('periods', 'N/A')}\n"
266
+ result += f"- Data Length: {len(metrics.get('data', []))}\n\n"
267
  except (ValueError, KeyError, json.JSONDecodeError) as e:
268
+ return result + f"❌ JSON Parse Error: {str(e)}\n\nResponse: {metrics_resp.text[:500]}"
269
 
270
  if isinstance(metrics, dict) and metrics.get("error"):
271
  return result + f"❌ {metrics['error']}"
272
 
273
+ # 调试:显示原始响应
274
+ if not isinstance(metrics, dict):
275
+ return result + f"❌ Invalid response format\n\nDebug: {str(metrics)[:500]}"
276
+
277
  result += f"## 3-Year Financial Trends ({metrics.get('periods', 0)} periods)\n\n"
278
 
279
  # 显示所有数据(包括年度和季度)
280
  all_data = metrics.get('data', []) # MCP Server 返回的字段是 'data'
281
 
282
+ # 调试:检查是否有数据
283
+ if not all_data:
284
+ return result + f"❌ No data returned from MCP Server\n\nDebug: metrics keys = {list(metrics.keys())}\n\nFull response: {json.dumps(metrics, indent=2, ensure_ascii=False)[:1000]}"
285
+
286
  # 去重:根据period和source_form去重
287
  seen = set()
288
  unique_data = []
 
347
  timeout=60
348
  )
349
 
350
+ # 调试:显示 HTTP 响应状态
351
+ result += f"\n**Debug Info (5-Year)**:\n- HTTP Status: {metrics_resp.status_code}\n"
352
+
353
  if metrics_resp.status_code != 200:
354
  return result + f"❌ Server Error: HTTP {metrics_resp.status_code}\n\n{metrics_resp.text[:500]}"
355
 
356
  try:
357
  metrics_result = metrics_resp.json()
358
+ # 调试:显示原始 JSON 响应
359
+ result += f"- Raw Response Length: {len(metrics_resp.text)} chars\n"
360
+ result += f"- Response Preview: {metrics_resp.text[:200]}...\n\n"
361
+
362
  # 使用统一的 MCP 响应解析函数
363
  metrics = parse_mcp_response(metrics_result)
364
+
365
+ # 调试:显示解析后的数据类型和内容
366
+ result += f"- Parsed Type: {type(metrics).__name__}\n"
367
+ if isinstance(metrics, dict):
368
+ result += f"- Parsed Keys: {list(metrics.keys())}\n"
369
+ result += f"- Periods: {metrics.get('periods', 'N/A')}\n"
370
+ result += f"- Data Length: {len(metrics.get('data', []))}\n\n"
371
  except (ValueError, KeyError, json.JSONDecodeError) as e:
372
+ return result + f"❌ JSON Parse Error: {str(e)}\n\nResponse: {metrics_resp.text[:500]}"
373
 
374
  if isinstance(metrics, dict) and metrics.get("error"):
375
  return result + f"❌ {metrics['error']}"
376
 
377
+ # 调试:显示原始响应
378
+ if not isinstance(metrics, dict):
379
+ return result + f"❌ Invalid response format\n\nDebug: {str(metrics)[:500]}"
380
+
381
  # 显示所有数据(包括年度和季度)
382
  all_data = metrics.get('data', []) # MCP Server 返回的字段是 'data'
383
 
384
+ # 调试:检查是否有数据
385
+ if not all_data:
386
+ return result + f"❌ No data returned from MCP Server\n\nDebug: metrics keys = {list(metrics.keys())}\n\nFull response: {json.dumps(metrics, indent=2, ensure_ascii=False)[:1000]}"
387
+
388
  # 去重:根据period和source_form去���
389
  seen = set()
390
  unique_data = []