fix(groq): use Config class instead of hardcoded config.json (#136)

Config class writes YAML (config.yaml), but xiaoyuzhou.py, cli.py, and
transcribe.sh were hardcoded to read config.json (JSON format). Users who
configured groq-key via 'agent-reach configure' would not have their key
detected because the wrong file was being read.

Fixes #128 (related to config loading)

Co-authored-by: Panniantong <panniantong@users.noreply.github.com>
This commit is contained in:
Pnant 2026-03-10 14:21:34 +08:00 committed by GitHub
parent f5f4dea075
commit 6737ba6dbd
No known key found for this signature in database
GPG key ID: B5690EEEBB952194
3 changed files with 11 additions and 22 deletions

View file

@ -3,6 +3,7 @@
import os
import shutil
from agent_reach.config import Config
from .base import Channel
@ -35,18 +36,14 @@ class XiaoyuzhouChannel(Channel):
" 或手动复制 transcribe.sh 到 ~/.agent-reach/tools/xiaoyuzhou/"
)
# Check GROQ_API_KEY — prefer env var, fall back to config file
# Check GROQ_API_KEY — prefer env var, fall back to Agent Reach config
has_key = bool(os.environ.get("GROQ_API_KEY"))
if not has_key:
config_path = os.path.expanduser("~/.agent-reach/config.json")
if os.path.isfile(config_path):
try:
import json
with open(config_path) as f:
cfg = json.load(f)
has_key = bool(cfg.get("groq_api_key"))
except Exception:
pass
try:
cfg = config if config is not None else Config()
has_key = bool(cfg.get("groq_api_key"))
except Exception:
has_key = False
if not has_key:
return "warn", (
"需要配置 Groq API Key免费。步骤\n"

View file

@ -490,15 +490,7 @@ def _install_xiaoyuzhou_deps():
print(" -- ffmpeg not found. Install: apt install -y ffmpeg (or brew install ffmpeg)")
# Check GROQ_API_KEY
config_path = os.path.expanduser("~/.agent-reach/config.json")
has_key = bool(os.environ.get("GROQ_API_KEY"))
if not has_key and os.path.isfile(config_path):
try:
with open(config_path) as f:
cfg = json.load(f)
has_key = bool(cfg.get("groq_api_key"))
except Exception:
pass
has_key = bool(os.environ.get("GROQ_API_KEY")) or bool(config.get("groq_api_key"))
if has_key:
print(" ✅ Groq API key configured")
else:

View file

@ -9,11 +9,11 @@ URL="${1:?用法: bash transcribe.sh <小宇宙链接> [输出文件路径]}"
OUTPUT="${2:-/tmp/podcast_transcript.txt}"
TMPDIR="/tmp/xiaoyuzhou_$$"
# Try env var first, then agent-reach config
# Try env var first, then agent-reach config.yaml
if [ -z "$GROQ_API_KEY" ]; then
CONFIG_FILE="$HOME/.agent-reach/config.json"
CONFIG_FILE="$HOME/.agent-reach/config.yaml"
if [ -f "$CONFIG_FILE" ]; then
GROQ_API_KEY=$(python3 -c "import json; print(json.load(open('$CONFIG_FILE')).get('groq_api_key',''))" 2>/dev/null || true)
GROQ_API_KEY=$(python3 -c "import yaml; print((yaml.safe_load(open('$CONFIG_FILE')) or {}).get('groq_api_key',''))" 2>/dev/null || true)
fi
fi
GROQ_API_KEY="${GROQ_API_KEY:?请设置 GROQ_API_KEY 环境变量或运行 agent-reach configure groq-key}"