mirror of
https://github.com/usestrix/strix.git
synced 2026-11-12 08:41:23 +00:00
feat(config): accept GROQ_API_KEY for Groq-hosted models
Add GROQ_API_KEY as an accepted alias for the LLM key alongside LLM_API_KEY / OPENAI_API_KEY, so STRIX_LLM="groq/<model>" works with a provider-native key. Groq models already route through LiteLLM (which mirrors the configured key to GROQ_API_KEY), so this wires up the alias plus docs and tests. Signed-off-by: Daniel Nguyen <danielnguyenh07@gmail.com>
This commit is contained in:
parent
302efedca6
commit
2647b2d499
3 changed files with 27 additions and 1 deletions
|
|
@ -235,6 +235,15 @@ export PERPLEXITY_API_KEY="your-api-key" # for search capabilities
|
|||
export STRIX_REASONING_EFFORT="high" # control thinking effort (default: high, quick scan: medium)
|
||||
```
|
||||
|
||||
Provider-native keys are also picked up automatically. For example, to use
|
||||
[Groq's](https://console.groq.com/) fast inference you can set `GROQ_API_KEY`
|
||||
directly instead of `LLM_API_KEY`:
|
||||
|
||||
```bash
|
||||
export STRIX_LLM="groq/llama-3.3-70b-versatile"
|
||||
export GROQ_API_KEY="your-api-key"
|
||||
```
|
||||
|
||||
> [!NOTE]
|
||||
> Strix automatically saves your configuration to `~/.strix/cli-config.json`, so you don't have to re-enter it on every run.
|
||||
|
||||
|
|
|
|||
|
|
@ -23,7 +23,7 @@ class LlmSettings(BaseSettings):
|
|||
model: str | None = Field(default=None, alias="STRIX_LLM")
|
||||
api_key: str | None = Field(
|
||||
default=None,
|
||||
validation_alias=AliasChoices("LLM_API_KEY", "OPENAI_API_KEY"),
|
||||
validation_alias=AliasChoices("LLM_API_KEY", "OPENAI_API_KEY", "GROQ_API_KEY"),
|
||||
)
|
||||
api_base: str | None = Field(
|
||||
default=None,
|
||||
|
|
|
|||
|
|
@ -20,6 +20,7 @@ _LLM_ENV_KEYS = [
|
|||
"STRIX_LLM",
|
||||
"LLM_API_KEY",
|
||||
"OPENAI_API_KEY",
|
||||
"GROQ_API_KEY",
|
||||
"LLM_API_BASE",
|
||||
"OPENAI_API_BASE",
|
||||
"OPENAI_BASE_URL",
|
||||
|
|
@ -150,6 +151,22 @@ def test_apply_config_override_invalidates_cache(tmp_path: Path) -> None:
|
|||
assert loader.load_settings().llm.model == "second-model"
|
||||
|
||||
|
||||
# --------------------------------------------------------------------------- #
|
||||
# LLM key aliases
|
||||
# --------------------------------------------------------------------------- #
|
||||
|
||||
|
||||
def test_groq_api_key_alias_populates_llm_key(monkeypatch: pytest.MonkeyPatch) -> None:
|
||||
monkeypatch.setenv("GROQ_API_KEY", "gsk-test")
|
||||
assert loader.load_settings().llm.api_key == "gsk-test"
|
||||
|
||||
|
||||
def test_llm_api_key_takes_precedence_over_groq(monkeypatch: pytest.MonkeyPatch) -> None:
|
||||
monkeypatch.setenv("LLM_API_KEY", "primary")
|
||||
monkeypatch.setenv("GROQ_API_KEY", "gsk-test")
|
||||
assert loader.load_settings().llm.api_key == "primary"
|
||||
|
||||
|
||||
# --------------------------------------------------------------------------- #
|
||||
# persist_current
|
||||
# --------------------------------------------------------------------------- #
|
||||
|
|
|
|||
Loading…
Add table
Reference in a new issue