From f3daa5cf971bd52f42e659ebd2c5458c21848126 Mon Sep 17 00:00:00 2001 From: Pnant <73925474+Panniantong@users.noreply.github.com> Date: Mon, 9 Mar 2026 18:18:15 +0800 Subject: [PATCH] =?UTF-8?q?fix(xiaoyuzhou):=20correct=20groq-api-key?= =?UTF-8?q?=E2=86=92groq-key=20in=20doctor=20hint=20and=20fix=20check()=20?= =?UTF-8?q?reading=20config=20after=20configure=20(#129)?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Fixes #128 Two bugs: 1. doctor warn message said 'agent-reach configure groq-api-key' but the actual CLI arg is 'groq-key' (see cli.py:75 choices list and :993 handler). Same typo existed in cli.py _install_xiaoyuzhou_deps() output. 2. check() had a logic flaw: the inner 'if not has_key' was nested inside 'if not os.environ.get(...)', so when GROQ_API_KEY env var was absent but config.json read succeeded, the outer condition never triggered the warning. Refactored to a flat has_key variable — cleaner and correct. Verified: 36/36 tests pass, manual unit tests confirm warn uses 'groq-key' and ok is returned when groq_api_key is present in config.json. Co-authored-by: 小白(Agent) --- agent_reach/channels/xiaoyuzhou.py | 19 +++++++++---------- agent_reach/cli.py | 2 +- 2 files changed, 10 insertions(+), 11 deletions(-) diff --git a/agent_reach/channels/xiaoyuzhou.py b/agent_reach/channels/xiaoyuzhou.py index 3eb9e12..905195a 100644 --- a/agent_reach/channels/xiaoyuzhou.py +++ b/agent_reach/channels/xiaoyuzhou.py @@ -35,11 +35,10 @@ class XiaoyuzhouChannel(Channel): " 或手动复制 transcribe.sh 到 ~/.agent-reach/tools/xiaoyuzhou/" ) - # Check GROQ_API_KEY - if not os.environ.get("GROQ_API_KEY"): - # Check if saved in config + # Check GROQ_API_KEY — prefer env var, fall back to config file + has_key = bool(os.environ.get("GROQ_API_KEY")) + if not has_key: config_path = os.path.expanduser("~/.agent-reach/config.json") - has_key = False if os.path.isfile(config_path): try: import json @@ -48,11 +47,11 @@ class XiaoyuzhouChannel(Channel): has_key = bool(cfg.get("groq_api_key")) except Exception: pass - if not has_key: - return "warn", ( - "需要配置 Groq API Key(免费)。步骤:\n" - " 1. 注册 https://console.groq.com\n" - " 2. 运行: agent-reach configure groq-api-key gsk_xxxxx" - ) + if not has_key: + return "warn", ( + "需要配置 Groq API Key(免费)。步骤:\n" + " 1. 注册 https://console.groq.com\n" + " 2. 运行: agent-reach configure groq-key gsk_xxxxx" + ) return "ok", "完整可用(播客下载 + Whisper 转录)" diff --git a/agent_reach/cli.py b/agent_reach/cli.py index 88eec69..40d37c0 100644 --- a/agent_reach/cli.py +++ b/agent_reach/cli.py @@ -503,7 +503,7 @@ def _install_xiaoyuzhou_deps(): print(" ✅ Groq API key configured") else: print(" -- Groq API key not set. Get free key at https://console.groq.com") - print(" Then run: agent-reach configure groq-api-key gsk_xxxxx") + print(" Then run: agent-reach configure groq-key gsk_xxxxx") def _install_weibo_deps():