diff --git a/face_features.py b/face_features.py index 0fa6785..9ab463b 100644 --- a/face_features.py +++ b/face_features.py @@ -37,7 +37,8 @@ _PROMPT = ( "基因风格(戏剧型/睿智型/自然型/古典型/优雅型/浪漫型/前卫型/少女型/少年型)" ) -_client = None +_client = None # 缓存的 Ark client(api_key 变更时自动重建) +_client_key: str | None = None # _client 构建时使用的 api_key,用于检测配置变更 def _load_api_key() -> str | None: @@ -60,13 +61,21 @@ def _load_api_key() -> str | None: def get_client(): - global _client - if _client is None: + """返回 Ark client。 + + client 全局缓存,但每次都会重新读取 api_key —— 一旦配置(环境变量 / + worker_config.json / gateway/config.json 的 ark_api_key)发生变化, + 自动重建 client。这样换 key 后无需重启进程。 + """ + global _client, _client_key + key = _load_api_key() + if not key: + raise RuntimeError("缺少火山方舟 API Key(设 ARK_API_KEY 或 worker_config.json.ark_api_key)") + # client 未建、或 key 变了 → 重建 + if _client is None or key != _client_key: from volcenginesdkarkruntime import Ark - key = _load_api_key() - if not key: - raise RuntimeError("缺少火山方舟 API Key(设 ARK_API_KEY 或 worker_config.json.ark_api_key)") _client = Ark(base_url=ARK_BASE_URL, api_key=key) + _client_key = key return _client