JC321 commited on
Commit
f511a7a
·
verified ·
1 Parent(s): e45f51f

Upload 3 files

Browse files
Files changed (1) hide show
  1. app.py +20 -13
app.py CHANGED
@@ -91,22 +91,25 @@ def query_financial_data(company_name, query_type):
91
  if isinstance(metrics, dict) and metrics.get("error"):
92
  return result + f"❌ {metrics['error']}"
93
 
94
- result += f"## Financial Trends ({metrics.get('count', 0)} periods)\n\n"
95
 
96
- # 只显示年度数据
97
- annual_data = [m for m in metrics.get('metrics', []) if 'Q' not in m.get('period', '')][:3]
98
 
99
- result += "| Period | Revenue (B) | Net Income (B) | EPS | Operating Expenses (B) | Operating Cash Flow (B) |\n"
100
- result += "|--------|-------------|----------------|-----|------------------------|-------------------------|\n"
101
 
102
- for m in annual_data:
103
  period = m.get('period', 'N/A')
104
  rev = m.get('total_revenue', 0) / 1e9
105
  inc = m.get('net_income', 0) / 1e9
106
  eps = m.get('earnings_per_share', 0)
107
  opex = m.get('operating_expenses', 0) / 1e9
108
  ocf = m.get('operating_cash_flow', 0) / 1e9
109
- result += f"| FY{period} | ${rev:.2f}B | ${inc:.2f}B | ${eps:.2f} | ${opex:.2f}B | ${ocf:.2f}B |\n"
 
 
 
110
 
111
  elif query_type == "5年趋势":
112
  metrics_resp = requests.post(
@@ -127,20 +130,24 @@ def query_financial_data(company_name, query_type):
127
  if isinstance(metrics, dict) and metrics.get("error"):
128
  return result + f"❌ {metrics['error']}"
129
 
130
- annual_data = [m for m in metrics.get('metrics', []) if 'Q' not in m.get('period', '')][:5]
 
131
 
132
- result += f"## 5-Year Financial Trends\n\n"
133
- result += "| Period | Revenue (B) | Net Income (B) | EPS | Operating Expenses (B) | Operating Cash Flow (B) |\n"
134
- result += "|--------|-------------|----------------|-----|------------------------|-------------------------|\n"
135
 
136
- for m in annual_data:
137
  period = m.get('period', 'N/A')
138
  rev = m.get('total_revenue', 0) / 1e9
139
  inc = m.get('net_income', 0) / 1e9
140
  eps = m.get('earnings_per_share', 0)
141
  opex = m.get('operating_expenses', 0) / 1e9
142
  ocf = m.get('operating_cash_flow', 0) / 1e9
143
- result += f"| FY{period} | ${rev:.2f}B | ${inc:.2f}B | ${eps:.2f} | ${opex:.2f}B | ${ocf:.2f}B |\n"
 
 
 
144
 
145
  return result
146
 
 
91
  if isinstance(metrics, dict) and metrics.get("error"):
92
  return result + f"❌ {metrics['error']}"
93
 
94
+ result += f"## 3-Year Financial Trends ({metrics.get('count', 0)} periods)\n\n"
95
 
96
+ # 显示所有数据(包括年度和季度)
97
+ all_data = metrics.get('metrics', [])
98
 
99
+ result += "| Period | Revenue (B) | Net Income (B) | EPS | Operating Expenses (B) | Operating Cash Flow (B) | Source Form |\n"
100
+ result += "|--------|-------------|----------------|-----|------------------------|-------------------------|-------------|\n"
101
 
102
+ for m in all_data:
103
  period = m.get('period', 'N/A')
104
  rev = m.get('total_revenue', 0) / 1e9
105
  inc = m.get('net_income', 0) / 1e9
106
  eps = m.get('earnings_per_share', 0)
107
  opex = m.get('operating_expenses', 0) / 1e9
108
  ocf = m.get('operating_cash_flow', 0) / 1e9
109
+ source = m.get('source_form', 'N/A')
110
+ # 区分年度和季度
111
+ period_prefix = "FY" if 'Q' not in period else ""
112
+ result += f"| {period_prefix}{period} | ${rev:.2f}B | ${inc:.2f}B | ${eps:.2f} | ${opex:.2f}B | ${ocf:.2f}B | {source} |\n"
113
 
114
  elif query_type == "5年趋势":
115
  metrics_resp = requests.post(
 
130
  if isinstance(metrics, dict) and metrics.get("error"):
131
  return result + f"❌ {metrics['error']}"
132
 
133
+ # 显示所有数据(包括年度和季度)
134
+ all_data = metrics.get('metrics', [])
135
 
136
+ result += f"## 5-Year Financial Trends ({metrics.get('count', 0)} periods)\n\n"
137
+ result += "| Period | Revenue (B) | Net Income (B) | EPS | Operating Expenses (B) | Operating Cash Flow (B) | Source Form |\n"
138
+ result += "|--------|-------------|----------------|-----|------------------------|-------------------------|-------------|\n"
139
 
140
+ for m in all_data:
141
  period = m.get('period', 'N/A')
142
  rev = m.get('total_revenue', 0) / 1e9
143
  inc = m.get('net_income', 0) / 1e9
144
  eps = m.get('earnings_per_share', 0)
145
  opex = m.get('operating_expenses', 0) / 1e9
146
  ocf = m.get('operating_cash_flow', 0) / 1e9
147
+ source = m.get('source_form', 'N/A')
148
+ # 区分年度和季度
149
+ period_prefix = "FY" if 'Q' not in period else ""
150
+ result += f"| {period_prefix}{period} | ${rev:.2f}B | ${inc:.2f}B | ${eps:.2f} | ${opex:.2f}B | ${ocf:.2f}B | {source} |\n"
151
 
152
  return result
153