feat: add foreman provider type for endpoint overrides
Build & push image / build-and-push (push) Successful in 7s
Build & push image / build-and-push (push) Successful in 7s
Accept "foreman" in both resolveModel (GADFLY_BASE_URL) and endpointProvider (GADFLY_ENDPOINT_*) switches, mapping to majordomo's ollama.Foreman() preset (handles foreman's non-streaming/long-poll quirks). Unlike the HTTPS-only LLM_* foreman:// DSN, the base URL is verbatim, so a plaintext http:// foreman queue works. Tests + README provider table + endpoint-aliases example updated. Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
This commit is contained in:
@@ -65,6 +65,7 @@ majordomo failover chain / alias) is used verbatim.
|
||||
|----------|-------------------|---------|--------|
|
||||
| **Ollama Cloud** (default) | `ollama-cloud` | `OLLAMA_API_KEY` / `OLLAMA_CLOUD_API_KEY` | ✅ in active use |
|
||||
| **Local Ollama** | `ollama` | none (`OLLAMA_HOST` or `GADFLY_BASE_URL` for a remote daemon) | ✅ tested |
|
||||
| **[foreman](https://gitea.stevedudenhoeffer.com/steve/foreman)** (native-Ollama queue daemon) | `foreman` + `GADFLY_BASE_URL`, or a `GADFLY_ENDPOINT_*` / `LLM_*` `foreman://` entry | optional bearer (via the endpoint/DSN) | ✅ native-Ollama path |
|
||||
| **OpenAI-compatible** (incl. local Ollama's `/v1`) | `openai` + `GADFLY_BASE_URL` | `OPENAI_API_KEY` (any non-empty for Ollama) | ✅ tested against Ollama |
|
||||
| **OpenAI** | `openai` | `OPENAI_API_KEY` | ⚠️ wired, **untested** |
|
||||
| **Anthropic** | `anthropic` | `ANTHROPIC_API_KEY` | ⚠️ wired, **untested** |
|
||||
@@ -87,7 +88,8 @@ name with env vars and then reference `name/model` in `GADFLY_MODEL`/`GADFLY_MOD
|
||||
# http-capable (Gadfly-native) — base URL used verbatim, so plaintext LAN works:
|
||||
GADFLY_ENDPOINT_BIGBOX="ollama|http://192.168.1.50:11434"
|
||||
GADFLY_ENDPOINT_GPU="openai|http://gpu.lan:8000/v1|sk-local"
|
||||
GADFLY_MODELS="bigbox/qwen2.5-coder:7b,gpu/llama3.1"
|
||||
GADFLY_ENDPOINT_M1="foreman|http://foreman-m1:8080|tok" # native-Ollama queue daemon
|
||||
GADFLY_MODELS="bigbox/qwen2.5-coder:7b,gpu/llama3.1,m1/qwen3:14b"
|
||||
|
||||
# pure spec alias (a model, or a failover chain):
|
||||
GADFLY_ALIAS_FAST="bigbox/qwen2.5-coder:7b,ollama-cloud/gpt-oss:120b-cloud"
|
||||
@@ -95,9 +97,9 @@ GADFLY_MODEL="fast"
|
||||
```
|
||||
|
||||
`<NAME>` is lowercased to form the registry name (`GADFLY_ENDPOINT_BIGBOX` → `bigbox`). This
|
||||
is the same idea as majordomo's built-in **`LLM_*` env DSNs** (`LLM_BIGBOX=ollama://tok@host`),
|
||||
which Gadfly also honors — but those are **HTTPS-only**, so for plaintext local Ollama use
|
||||
`GADFLY_ENDPOINT_*` instead.
|
||||
is the same idea as majordomo's built-in **`LLM_*` env DSNs** (`LLM_BIGBOX=ollama://tok@host`,
|
||||
`LLM_M1=foreman://tok@host`), which Gadfly also honors — but those are **HTTPS-only**, so for a
|
||||
plaintext local Ollama or `http://` foreman use `GADFLY_ENDPOINT_*` instead.
|
||||
|
||||
> **Gitea Actions note:** repo `vars`/`secrets` aren't auto-exposed as env — add each alias to
|
||||
> the stub workflow's `env:` block, e.g. `GADFLY_ENDPOINT_BIGBOX: ${{ vars.GADFLY_ENDPOINT_BIGBOX }}`.
|
||||
|
||||
Reference in New Issue
Block a user