feat: add Databricks model provider - #20
Open
calvinmclean wants to merge 11 commits into
Open
calvinmclean wants to merge 11 commits into
calvinmclean wants to merge 11 commits into
Conversation
calvinmclean
marked this pull request as ready for review
September 17, 2026 16:12
There was a problem hiding this comment.
🟡 Changes recommended
The provider lacks inference forwarding and does not retrieve detailed traffic configuration before filtering endpoints.
Get a fresh assessment by requesting another Copilot review.
Pull request overview
Adds Databricks-hosted model discovery and provider registration.
Changes:
- Adds authenticated serving-endpoint discovery and dialect filtering.
- Adds provider configuration and packaging integration.
- Adds URL, discovery, filtering, and handler tests.
File summaries
| File | Description |
|---|---|
| model-providers/databricks-model-provider.yaml | Registers the Databricks provider and configuration. |
| Makefile | Includes Databricks tests. |
| databricks-model-provider/server.go | Implements discovery and HTTP serving. |
| databricks-model-provider/server_test.go | Tests discovery and filtering behavior. |
| databricks-model-provider/main.go | Configures validation and daemon startup. |
| databricks-model-provider/go.mod | Defines the Go module. |
Review details
- Files reviewed: 6/6 changed files
- Comments generated: 2
- Review effort level: Balanced
💡 Add a code-review agent skill or configure MCP servers for context-aware, tailored reviews. Learn more in the docs.
calvinmclean
force-pushed
the
feat/databricks-model-provider
branch
from
September 17, 2026 18:02
ed4411a to
8522727
Compare
There was a problem hiding this comment.
🟡 Changes recommended
Model discovery currently omits eligible endpoints returned on later API pages.
Get a fresh assessment by requesting another Copilot review.
Review details
Suppressed comments (3)
databricks-model-provider/server.go:223
- Dialect selection currently intersects every configured served entity, rather than only traffic-receiving entities as the PR describes. Databricks exposes active routes under
traffic_config.routeswithserved_entity_name/served_model_nameandtraffic_percentage; therefore a stale or canary entity receiving 0% traffic can incorrectly hide an otherwise compatible endpoint (or change its selected dialect). Parse the traffic configuration and restrict this intersection to routes with positive traffic, with an explicit fallback for responses that omit routing metadata.
for _, entity := range config.ServedEntities {
supported := entity.responseDialects()
databricks-model-provider/server.go:226
- This intersection is computed over every configured served entity, but a Databricks endpoint can route traffic to only a subset via
config.traffic_config.routes. An inactive/canary entity without a Responses API dialect will therefore makecommonempty and hide an otherwise usable endpoint, while a non-traffic entity can also affect the selected dialect. Resolve route targets and compute the dialect only from entities receiving traffic, with a fallback for responses that omit routing metadata.
for _, entity := range config.ServedEntities {
supported := entity.responseDialects()
for dialect := range common {
if !supported[dialect] {
delete(common, dialect)
databricks-model-provider/server.go:226
- This intersection currently includes every entry in
served_entities, but Databricks can retain entities that receive 0% traffic. An endpoint with an active entity supporting Responses and an inactive entity without it will therefore be hidden even though all traffic-receiving entities share a supported dialect. Parseconfig.traffic_config.routesand intersect only the entities referenced by those routes (and use that same active set for model metadata).
for _, entity := range config.ServedEntities {
supported := entity.responseDialects()
for dialect := range common {
if !supported[dialect] {
delete(common, dialect)
- Files reviewed: 8/8 changed files
- Comments generated: 1
- Review effort level: Balanced
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Summary
OpenAIResponseswhen both dialects are availableAddresses obot-platform/field-issues#61