30 lines
1.5 KiB
Markdown
30 lines
1.5 KiB
Markdown
# 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()`):
|
|
|
|
```python
|
|
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)
|
|
1. `~/.hermes/config.yaml` → `model.provider`, `model.base_url`, `model.default`
|
|
2. `~/.hermes/auth.json` → `credential_pool[provider][0].source` (format: `env:VAR_NAME`)
|
|
3. `~/.hermes/.env` → actual key value
|
|
4. 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.
|