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

Class UpstreamClient

app/core/upstream.py:363–2236  ·  view source on GitHub ↗

当前服务使用的上游适配器。

Source from the content-addressed store, hash-verified

361
362
363class UpstreamClient:
364 """当前服务使用的上游适配器。"""
365
366 def __init__(self):
367 self.name = "upstream"
368 self.logger = logger
369 self.api_endpoint = settings.API_ENDPOINT
370
371 # 当前上游特定配置
372 self.base_url = DEFAULT_ZAI_BASE_URL
373 self.auth_url = f"{self.base_url}/api/v1/auths/"
374
375 # 模型映射
376 self.model_mapping = {
377 settings.GLM45_MODEL: "0727-360B-API", # GLM-4.5
378 settings.GLM45_THINKING_MODEL: "0727-360B-API", # GLM-4.5-Thinking
379 settings.GLM45_SEARCH_MODEL: "0727-360B-API", # GLM-4.5-Search
380 settings.GLM45_AIR_MODEL: "0727-106B-API", # GLM-4.5-Air
381 settings.GLM46V_MODEL: "glm-4.6v", # GLM-4.6V多模态
382 settings.GLM5_MODEL: "glm-5", # GLM-5
383 settings.GLM47_MODEL: "glm-4.7", # GLM-4.7
384 settings.GLM47_THINKING_MODEL: "glm-4.7", # GLM-4.7-Thinking
385 settings.GLM47_SEARCH_MODEL: "glm-4.7", # GLM-4.7-Search
386 settings.GLM47_ADVANCED_SEARCH_MODEL: "glm-4.7", # GLM-4.7-advanced-search
387 }
388
389 def _get_guest_retry_limit(self) -> int:
390 """匿名号池可提供的最大重试预算。"""
391 if not settings.ANONYMOUS_MODE:
392 return 0
393
394 guest_pool = get_guest_session_pool()
395 if not guest_pool:
396 return max(2, settings.GUEST_POOL_SIZE + 1)
397
398 pool_status = guest_pool.get_pool_status()
399 available_sessions = int(
400 pool_status.get("valid_sessions")
401 or pool_status.get("available_sessions")
402 or 0
403 )
404 return max(2, available_sessions + 1)
405
406 def _get_authenticated_retry_limit(self) -> int:
407 """认证号池与静态 Token 可提供的最大重试预算。"""
408 available_tokens = 0
409 token_pool = get_token_pool()
410 if token_pool:
411 available_tokens = int(
412 token_pool.get_pool_status().get("available_tokens", 0) or 0
413 )
414
415 return max(0, available_tokens)
416
417 def _get_total_retry_limit(self) -> int:
418 """综合认证号池与匿名号池的最大尝试次数。"""
419 return max(
420 1,

Calls

no outgoing calls