Spaces:
Sleeping
Sleeping
Upload 3 files
Browse files
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 |
-
|
| 98 |
|
| 99 |
-
result += "| Period | Revenue (B) | Net Income (B) | EPS | Operating Expenses (B) | Operating Cash Flow (B) |\n"
|
| 100 |
-
result += "
|
| 101 |
|
| 102 |
-
for m in
|
| 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 |
-
|
|
|
|
|
|
|
|
|
|
| 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 |
-
|
|
|
|
| 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 += "
|
| 135 |
|
| 136 |
-
for m in
|
| 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 |
-
|
|
|
|
|
|
|
|
|
|
| 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 |
|