feat: env-defined endpoint aliases (http-capable, local Ollama friendly)
Build & push image / build-and-push (push) Successful in 9s
Build & push image / build-and-push (push) Successful in 9s
majordomo's built-in LLM_* env DSNs are HTTPS-only (DSN.BaseURL forces https), so they can't express a plaintext local Ollama. Add Gadfly-native env families that register named providers/aliases with majordomo before resolution: GADFLY_ENDPOINT_<NAME>="<provider>|<base-url>[|<key>]" # base URL verbatim (http ok) GADFLY_ALIAS_<NAME>="<majordomo spec>" # plain alias / failover chain Then reference them as "<name>/<model>" (or the bare alias) in GADFLY_MODEL(S). <NAME> lowercases to the registry name, matching majordomo's LLM_* convention. LLM_* DSNs still work (and are documented) for HTTPS endpoints. + unit tests, README "Endpoint aliases via env vars", stub example. Co-Authored-By: Claude Opus 4.8 (1M context) <[email protected]>
This commit is contained in:
co-authored by
Claude Opus 4.8
parent
d9405f4f69
commit
bd76aa8286
@@ -2,6 +2,30 @@ package main
|
||||
|
||||
import "testing"
|
||||
|
||||
func TestEndpointProvider(t *testing.T) {
|
||||
t.Run("ollama http endpoint registers under its name", func(t *testing.T) {
|
||||
p, err := endpointProvider("bigbox", "ollama|http://192.168.1.50:11434")
|
||||
if err != nil {
|
||||
t.Fatalf("unexpected error: %v", err)
|
||||
}
|
||||
if p.Name() != "bigbox" {
|
||||
t.Errorf("Name() = %q, want %q", p.Name(), "bigbox")
|
||||
}
|
||||
})
|
||||
t.Run("openai compatible with key", func(t *testing.T) {
|
||||
if _, err := endpointProvider("gpu", "openai|http://gpu.lan:8000/v1|sk-x"); err != nil {
|
||||
t.Fatalf("unexpected error: %v", err)
|
||||
}
|
||||
})
|
||||
for _, bad := range []string{"", "ollama", "noprovider-no-pipe", "mystery|http://x"} {
|
||||
t.Run("rejects "+bad, func(t *testing.T) {
|
||||
if _, err := endpointProvider("n", bad); err == nil {
|
||||
t.Errorf("endpointProvider(%q) = nil error, want error", bad)
|
||||
}
|
||||
})
|
||||
}
|
||||
}
|
||||
|
||||
func TestBuildSpec(t *testing.T) {
|
||||
tests := []struct {
|
||||
name string
|
||||
|
||||
Reference in New Issue
Block a user