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

Class TokenStatus

app/utils/token_pool.py:29–82  ·  view source on GitHub ↗

Token 运行时状态(内存中)

Source from the content-addressed store, hash-verified

27
28@dataclass
29class TokenStatus:
30 """Token 运行时状态(内存中)"""
31 token: str
32 token_id: int # 数据库 ID,用于同步统计
33 token_type: str = "unknown" # "user", "guest", "unknown"
34 is_available: bool = True
35 failure_count: int = 0
36 last_failure_time: float = 0.0
37 last_success_time: float = 0.0
38 total_requests: int = 0
39 successful_requests: int = 0
40 db_synced_successful_requests: int = 0
41 db_synced_failed_requests: int = 0
42
43 @property
44 def success_rate(self) -> float:
45 """成功率"""
46 if self.total_requests == 0:
47 return 1.0
48 return self.successful_requests / self.total_requests
49
50 @property
51 def failed_requests(self) -> int:
52 """失败次数。"""
53 return max(0, self.total_requests - self.successful_requests)
54
55 @property
56 def is_healthy(self) -> bool:
57 """
58 Token 健康状态判断
59
60 健康标准:
61 1. 必须是认证用户 Token (token_type = "user")
62 2. 当前可用 (is_available = True)
63 3. 成功率 >= 50% 或总请求数 <= 3(新 Token 容错)
64
65 注意:
66 - guest Token 永远不健康
67 - unknown Token 永远不健康
68 """
69 # guest 和 unknown token 永远不健康
70 if self.token_type != "user":
71 return False
72
73 # 不可用的 token 不健康
74 if not self.is_available:
75 return False
76
77 # 新 token 容错:请求数很少时,只要没失败就健康
78 if self.total_requests <= 3:
79 return self.failure_count == 0
80
81 # 基于成功率判断
82 return self.success_rate >= 0.5
83
84
85# ==================== Token 验证服务 ====================

Callers 2

__init__Method · 0.85
sync_from_databaseMethod · 0.85

Calls

no outgoing calls

Tested by

no test coverage detected