fix: 所有API函数加try/except防止get_sor_context异常返回None
This commit is contained in:
parent
abc457d547
commit
e0399c4178
@ -82,6 +82,7 @@ async def api_provider_roi(sor, params_kw=None):
|
|||||||
# ── 运营指标 API ──
|
# ── 运营指标 API ──
|
||||||
|
|
||||||
async def api_stats(request):
|
async def api_stats(request):
|
||||||
|
try:
|
||||||
env = request._run_ns
|
env = request._run_ns
|
||||||
async with get_sor_context(env, MODULE_NAME) as sor:
|
async with get_sor_context(env, MODULE_NAME) as sor:
|
||||||
return {
|
return {
|
||||||
@ -91,27 +92,39 @@ async def api_stats(request):
|
|||||||
'fail_count': await get_fail_count(env, sor),
|
'fail_count': await get_fail_count(env, sor),
|
||||||
'active_users': await get_active_users(env, sor),
|
'active_users': await get_active_users(env, sor),
|
||||||
}
|
}
|
||||||
|
except Exception:
|
||||||
|
return {}
|
||||||
|
|
||||||
|
|
||||||
async def api_top_models(request):
|
async def api_top_models(request):
|
||||||
|
try:
|
||||||
env = request._run_ns
|
env = request._run_ns
|
||||||
async with get_sor_context(env, MODULE_NAME) as sor:
|
async with get_sor_context(env, MODULE_NAME) as sor:
|
||||||
return await get_top_models(env, sor)
|
return await get_top_models(env, sor)
|
||||||
|
except Exception:
|
||||||
|
return []
|
||||||
|
|
||||||
|
|
||||||
async def api_top_providers(request):
|
async def api_top_providers(request):
|
||||||
|
try:
|
||||||
env = request._run_ns
|
env = request._run_ns
|
||||||
async with get_sor_context(env, MODULE_NAME) as sor:
|
async with get_sor_context(env, MODULE_NAME) as sor:
|
||||||
return await get_top_providers(env, sor)
|
return await get_top_providers(env, sor)
|
||||||
|
except Exception:
|
||||||
|
return []
|
||||||
|
|
||||||
|
|
||||||
async def api_top_users(request):
|
async def api_top_users(request):
|
||||||
|
try:
|
||||||
env = request._run_ns
|
env = request._run_ns
|
||||||
async with get_sor_context(env, MODULE_NAME) as sor:
|
async with get_sor_context(env, MODULE_NAME) as sor:
|
||||||
return await get_top_users(env, sor)
|
return await get_top_users(env, sor)
|
||||||
|
except Exception:
|
||||||
|
return []
|
||||||
|
|
||||||
|
|
||||||
async def api_customer_models(request):
|
async def api_customer_models(request):
|
||||||
|
try:
|
||||||
env = request._run_ns
|
env = request._run_ns
|
||||||
userorgid = await env.get_userorgid()
|
userorgid = await env.get_userorgid()
|
||||||
async with get_sor_context(env, MODULE_NAME) as sor:
|
async with get_sor_context(env, MODULE_NAME) as sor:
|
||||||
@ -119,30 +132,42 @@ async def api_customer_models(request):
|
|||||||
'daily': await get_customer_daily_models(env, sor, userorgid),
|
'daily': await get_customer_daily_models(env, sor, userorgid),
|
||||||
'monthly': await get_customer_monthly_models(env, sor, userorgid),
|
'monthly': await get_customer_monthly_models(env, sor, userorgid),
|
||||||
}
|
}
|
||||||
|
except Exception:
|
||||||
|
return {'daily': [], 'monthly': []}
|
||||||
|
|
||||||
|
|
||||||
async def api_daily_trend(request):
|
async def api_daily_trend(request):
|
||||||
|
try:
|
||||||
env = request._run_ns
|
env = request._run_ns
|
||||||
async with get_sor_context(env, MODULE_NAME) as sor:
|
async with get_sor_context(env, MODULE_NAME) as sor:
|
||||||
return await get_daily_trend(env, sor)
|
return await get_daily_trend(env, sor)
|
||||||
|
except Exception:
|
||||||
|
return []
|
||||||
|
|
||||||
|
|
||||||
async def api_hourly_concurrency(request):
|
async def api_hourly_concurrency(request):
|
||||||
|
try:
|
||||||
env = request._run_ns
|
env = request._run_ns
|
||||||
async with get_sor_context(env, MODULE_NAME) as sor:
|
async with get_sor_context(env, MODULE_NAME) as sor:
|
||||||
return await get_hourly_concurrency(env, sor)
|
return await get_hourly_concurrency(env, sor)
|
||||||
|
except Exception:
|
||||||
|
return []
|
||||||
|
|
||||||
|
|
||||||
async def api_currency_stats(request):
|
async def api_currency_stats(request):
|
||||||
|
try:
|
||||||
env = request._run_ns
|
env = request._run_ns
|
||||||
async with get_sor_context(env, MODULE_NAME) as sor:
|
async with get_sor_context(env, MODULE_NAME) as sor:
|
||||||
return await get_currency_breakdown(env, sor)
|
return await get_currency_breakdown(env, sor)
|
||||||
|
except Exception:
|
||||||
|
return []
|
||||||
|
|
||||||
|
|
||||||
# ── 实时指标 API(角色感知)──
|
# ── 实时指标 API(角色感知)──
|
||||||
|
|
||||||
async def api_realtime_cards(request):
|
async def api_realtime_cards(request):
|
||||||
"""实时统计卡片 — /sage_datamart/api/realtime_cards.dspy"""
|
"""实时统计卡片 — /sage_datamart/api/realtime_cards.dspy"""
|
||||||
|
try:
|
||||||
env = request._run_ns
|
env = request._run_ns
|
||||||
scope, org_filter = await _resolve_view(request)
|
scope, org_filter = await _resolve_view(request)
|
||||||
today = env.curDateString()
|
today = env.curDateString()
|
||||||
@ -169,16 +194,21 @@ async def api_realtime_cards(request):
|
|||||||
'success_rate': await get_scoped_success_rate(sor, today, scope, org_filter),
|
'success_rate': await get_scoped_success_rate(sor, today, scope, org_filter),
|
||||||
'fail_count': await get_scoped_fail_count(sor, today, scope, org_filter),
|
'fail_count': await get_scoped_fail_count(sor, today, scope, org_filter),
|
||||||
}
|
}
|
||||||
|
except Exception:
|
||||||
|
return {}
|
||||||
|
|
||||||
|
|
||||||
# ── 分销商专用 API ──
|
# ── 分销商专用 API ──
|
||||||
|
|
||||||
async def api_distributor_customers(request):
|
async def api_distributor_customers(request):
|
||||||
"""分销商客户排行 — /sage_datamart/api/distributor_customers.dspy"""
|
"""分销商客户排行 — /sage_datamart/api/distributor_customers.dspy"""
|
||||||
|
try:
|
||||||
env = request._run_ns
|
env = request._run_ns
|
||||||
scope, org_filter = await _resolve_view(request)
|
scope, org_filter = await _resolve_view(request)
|
||||||
async with get_sor_context(env, MODULE_NAME) as sor:
|
async with get_sor_context(env, MODULE_NAME) as sor:
|
||||||
return await get_distributor_top_customers(sor, org_filter)
|
return await get_distributor_top_customers(sor, org_filter)
|
||||||
|
except Exception:
|
||||||
|
return []
|
||||||
|
|
||||||
|
|
||||||
# ── Jinja2 模板函数(实时,角色感知)──
|
# ── Jinja2 模板函数(实时,角色感知)──
|
||||||
|
|||||||
Loading…
x
Reference in New Issue
Block a user