Repository navigation
feat: add Opper as an OpenAI-compatible provider alias - #4677
Conversation
|
👋 Some commits in this PR are not signed and verified by GitHub. Please sign your commits with a GPG or SSH key registered in your GitHub account, then force-push. Commits that are not verified: See GitHub's guide on signing commits for setup instructions. I've added |
Adds Opper (https://opper.ai), an EU-hosted AI gateway, as a built-in OpenAI-compatible alias in the same shape as the OpenRouter alias: alias entry with OPPER_API_KEY and base URL https://api.opper.ai/v3/compat, auto-config support with claude-sonnet-4-6 as the default model, the system-message merge shared with the other gateway aliases, a provider docs page, an example recipe, and test coverage across the touched packages. The models.dev catalog already carries the opper provider, so the default model and the example resolve through it and no catalog exemption is needed. Disclosure: Opper is my startup. Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com> Signed-off-by: Felix Wunderlich <felix@opper.ai>
19f8616 to
afb8dac
Compare
|
Thanks for the approval. The commit is now signed and verified by GitHub (afb8dac). Same tree as before, no content changes. |
There was a problem hiding this comment.
🟢 Approval recommended
The changes follow established alias patterns with no unresolved findings; test execution remains unverified.
No open issues 🎉
What changed in this PR
Adds Opper as a built-in OpenAI-compatible provider using the existing alias infrastructure.
Changes:
- Registers Opper’s endpoint, API key discovery, and default model.
- Enables consecutive system-message merging and adds regression tests.
- Adds configuration documentation, navigation, and an example.
| File | Description |
|---|---|
| pkg/model/provider/openai/system_message_merge_test.go | Tests Opper message merging. |
| pkg/model/provider/openai/client.go | Enables gateway message merging. |
| pkg/model/provider/aliases.go | Registers the Opper alias. |
| pkg/model/provider/aliases_test.go | Verifies alias settings. |
| pkg/config/auto.go | Adds credential discovery and default model. |
| pkg/config/auto_test.go | Tests automatic Opper selection. |
| examples/README.md | Lists the Opper example. |
| examples/opper.yaml | Provides a sample agent configuration. |
| docs/providers/overview/index.md | Lists Opper authentication. |
| docs/providers/opper/index.md | Documents setup and usage. |
| docs/data/nav.yml | Adds provider navigation. |
| docs/configuration/models/index.md | Lists Opper in configuration guidance. |
| agent-schema.json | Adds Opper to the provider description. |
Review effort: Balanced
Summary
opper, base URLhttps://api.opper.ai/v3/compat), in the same shape as the OpenRouter aliasOPPER_API_KEYfor automatic model selection and credential forwarding, withclaude-sonnet-4-6as the default modelOpper is an EU-hosted AI gateway: 700+ models from 50+ providers behind one OpenAI-compatible API, with one key. The models.dev catalog already carries the
opperprovider (it is inpkg/modelsdev/snapshot.json), so the default model and the example resolve through it and no catalog exemption is needed.Testing
go test, lint and the docs build.GET https://api.opper.ai/v3/models) and the embedded models.dev snapshot.Disclosure: Opper is my startup.