MCPcopy Create free account
hub / github.com/ZyphrZero/z.ai2api_python / get_token_pool_status

Function get_token_pool_status

app/admin/api.py:269–326  ·  view source on GitHub ↗

获取 Token 池状态(HTML 片段)

(request: Request)

Source from the content-addressed store, hash-verified

267
268@router.get("/token-pool", response_class=HTMLResponse)
269async def get_token_pool_status(request: Request):
270 """获取 Token 池状态(HTML 片段)"""
271 from app.utils.token_pool import get_token_pool
272
273 token_pool = get_token_pool()
274
275 if not token_pool:
276 # Token 池未初始化
277 context = {
278 "request": request,
279 "tokens": [],
280 }
281 return templates.TemplateResponse("components/token_pool.html", context)
282
283 # 获取 token 状态统计
284 pool_status = token_pool.get_pool_status()
285 tokens_info = []
286
287 for idx, token_info in enumerate(pool_status.get("tokens", []), 1):
288 is_available = token_info.get("is_available", False)
289 is_healthy = token_info.get("is_healthy", False)
290
291 # 确定状态和颜色
292 if is_healthy:
293 status = "健康"
294 status_color = "bg-green-100 text-green-800"
295 elif is_available:
296 status = "可用"
297 status_color = "bg-yellow-100 text-yellow-800"
298 else:
299 status = "失败"
300 status_color = "bg-red-100 text-red-800"
301
302 # 格式化最后使用时间
303 last_success = token_info.get("last_success_time", 0)
304 if last_success > 0:
305 from datetime import datetime
306 last_used = datetime.fromtimestamp(last_success).strftime("%Y-%m-%d %H:%M:%S")
307 else:
308 last_used = "从未使用"
309
310 tokens_info.append({
311 "index": idx,
312 "key": token_info.get("token", "")[:20] + "...",
313 "status": status,
314 "status_color": status_color,
315 "last_used": last_used,
316 "failure_count": token_info.get("failure_count", 0),
317 "success_rate": token_info.get("success_rate", "0%"),
318 "token_type": token_info.get("token_type", "unknown"),
319 })
320
321 context = {
322 "request": request,
323 "tokens": tokens_info,
324 }
325
326 return templates.TemplateResponse("components/token_pool.html", context)

Callers

nothing calls this directly

Calls 2

get_token_poolFunction · 0.90
get_pool_statusMethod · 0.45

Tested by

no test coverage detected