1.5 KiB
1.5 KiB
AI Daily Pipeline — LLM Config Auto-Follow (2026-05-30)
Problem
The daily report script had hardcoded XIAOMI_API_KEY / XIAOMI_BASE_URL env vars. When the user switches Hermes' main model provider, the script would still use the old provider unless manually updated.
Solution: resolve_llm_config(env)
Added to ai_daily_blog_pipeline.py (replaces hardcoded reads in llm_call()):
def resolve_llm_config(env: dict):
"""Read Hermes config to get the active provider's API key, base_url, and model."""
# 1. Read ~/.hermes/config.yaml → model.provider, model.base_url, model.default
# 2. Read ~/.hermes/auth.json → credential_pool[provider].source (e.g. "env:XIAOMI_API_KEY")
# 3. Resolve env var name → actual key from .env
# 4. Fallback to LLM_API_KEY / XIAOMI_API_KEY if auth.json lookup fails
return api_key, base_url, model_name
Config Sources (priority order)
~/.hermes/config.yaml→model.provider,model.base_url,model.default~/.hermes/auth.json→credential_pool[provider][0].source(format:env:VAR_NAME)~/.hermes/.env→ actual key value- Legacy fallback:
LLM_API_KEY/XIAOMI_API_KEY/LLM_BASE_URL/LLM_MODEL
Usage
When user runs hermes config set model.provider=minimax, the daily report script automatically uses MiniMax's API key and endpoint on the next run. No script changes needed.
Pitfall
The script needs import yaml — ensure PyYAML is installed. It's available in the Hermes venv but may not be in system Python.