Skip to content

docs: add default provider resolution docs#3069

Merged
akshaydeo merged 4 commits intomainfrom
04-27-docs_default_provider_selection_doc_updates
Apr 28, 2026
Merged

docs: add default provider resolution docs#3069
akshaydeo merged 4 commits intomainfrom
04-27-docs_default_provider_selection_doc_updates

Conversation

@Pratham-Mishra04
Copy link
Copy Markdown
Collaborator

Summary

This PR documents the new default provider resolution feature introduced in Bifrost v1.5.0-prerelease7, which allows requests to be made with bare model names (e.g., "gpt-4o") instead of requiring the explicit provider/model format. It also applies formatting improvements across several documentation pages for consistency with MDX rendering conventions.

Changes

  • Added a new Default Provider Resolution section to provider-routing.mdx explaining how Bifrost uses the Model Catalog to automatically resolve a provider when no provider/ prefix is supplied in the model name. This resolution runs after all other routing engines and is surfaced in telemetry as the model-catalog routing engine.
  • Updated the routing_engines_used label description in telemetry.mdx to include "model-catalog" as a possible value.
  • Updated the quickstart guide to note that bare model names are supported and link to the new Default Provider Resolution section.
  • Applied consistent MDX formatting across model-catalog.mdx, telemetry.mdx, provider-routing.mdx, and setting-up.mdx — including blank lines after headings, reformatted callout blocks (<Info>, <Note>, <Tip>, <Warning>), and aligned markdown tables.

Type of change

  • Bug fix
  • Feature
  • Refactor
  • Documentation
  • Chore/CI

Affected areas

  • Core (Go)
  • Transports (HTTP)
  • Providers/Integrations
  • Plugins
  • UI (React)
  • Docs

How to test

Review the rendered documentation pages for:

  • docs/providers/provider-routing.mdx — confirm the new Default Provider Resolution section appears correctly with the example and notes.
  • docs/features/telemetry.mdx — confirm "model-catalog" appears in the routing_engines_used label description.
  • docs/quickstart/gateway/setting-up.mdx — confirm the note about bare model names and the link to Default Provider Resolution renders correctly.
  • docs/architecture/framework/model-catalog.mdx — confirm formatting renders without layout issues.

Breaking changes

  • Yes
  • No

Related issues

N/A

Security considerations

None. Documentation-only changes with no impact on auth, secrets, or data handling.

Checklist

  • I read docs/contributing/README.md and followed the guidelines
  • I added/updated tests where appropriate
  • I updated documentation where needed
  • I verified builds succeed (Go and UI)
  • I verified the CI pipeline passes locally if applicable

@CLAassistant
Copy link
Copy Markdown

CLA assistant check
Thank you for your submission! We really appreciate it. Like many open source projects, we ask that you sign our Contributor License Agreement before we can accept your contribution.
You have signed the CLA already but the status is still pending? Let us recheck it.

@coderabbitai
Copy link
Copy Markdown
Contributor

coderabbitai Bot commented Apr 26, 2026

Warning

Rate limit exceeded

@Pratham-Mishra04 has exceeded the limit for the number of commits that can be reviewed per hour. Please wait 11 minutes and 53 seconds before requesting another review.

To keep reviews running without waiting, you can enable usage-based add-on for your organization. This allows additional reviews beyond the hourly cap. Account admins can enable it under billing.

⌛ How to resolve this issue?

After the wait time has elapsed, a review can be triggered using the @coderabbitai review command as a PR comment. Alternatively, push new commits to this PR.

We recommend that you space out your commits to avoid hitting the rate limit.

🚦 How do rate limits work?

CodeRabbit enforces hourly rate limits for each developer per organization.

Our paid plans have higher rate limits than the trial, open-source and free plans. In all cases, we re-allow further reviews after a brief timeout.

Please see our FAQ for further information.

ℹ️ Review info
⚙️ Run configuration

Configuration used: Organization UI

Review profile: CHILL

Plan: Pro

Run ID: 97ba0c7e-2c13-4467-afd6-d2266f377a0d

📥 Commits

Reviewing files that changed from the base of the PR and between c8cc2e4 and fe670d3.

📒 Files selected for processing (4)
  • docs/architecture/framework/model-catalog.mdx
  • docs/features/telemetry.mdx
  • docs/providers/provider-routing.mdx
  • docs/quickstart/gateway/setting-up.mdx
📝 Walkthrough

Walkthrough

Reformats MDX content across four docs and adds a new documentation section "Default Provider Resolution" that describes catalog-driven resolution for bare model names. No code, exported API, or behavioral changes to runtime code are made.

Changes

Cohort / File(s) Summary
Model Catalog docs
docs/architecture/framework/model-catalog.mdx
Rewrapped and reformatted <Info>, <Note>, and <Tip> blocks; adjusted paragraph wrapping and removed an extra blank line before "Cleanup and Lifecycle Management".
Telemetry docs
docs/features/telemetry.mdx
Aligned Markdown table columns; normalized PromQL spacing; adjusted alert YAML formatting and annotations.summary quoting; wrapped JSX <Warning>/<Info> content; added model-catalog to routing_engines_used example values.
Provider routing (format + new section)
docs/providers/provider-routing.mdx
Reflowed tables, cards, lists, and JSX blocks; added Default Provider Resolution section documenting catalog lookup via GetProvidersForModel(model), request equivalence examples, telemetry label routing_engine="model-catalog", and error behavior when resolution fails.
Quickstart (gateway)
docs/quickstart/gateway/setting-up.mdx
Reformatted <source> element and several <Note> blocks; clarified provider resolution to state bare model names (e.g., gpt-4o-mini) may be auto-resolved via the Model Catalog and linked to the new doc section.

Sequence Diagram(s)

sequenceDiagram
    participant Client as Client
    participant Gateway as Gateway/Bifrost
    participant Catalog as Model Catalog
    participant Provider as Provider Service
    Client->>Gateway: Request with bare model (e.g., "gpt-4o-mini")
    Gateway->>Catalog: GetProvidersForModel(model)
    Catalog-->>Gateway: List of providers (or NotFound / Error)
    alt providers found
      Gateway->>Gateway: Select provider (deterministic/fallback)
      Gateway->>Provider: Forward request as "provider/model"
      Provider-->>Gateway: Response
      Gateway-->>Client: Response
    else not found / catalog error
      Gateway-->>Client: Error (ask for explicit provider/model)
    end
Loading

Estimated code review effort

🎯 3 (Moderate) | ⏱️ ~20 minutes

Poem

🐇 I hopped through docs with nimble paws,
Rewrapped the notes and smoothed their laws,
A catalog whisper filled the trail,
Bare names now guided without fail,
I scribbled joy and left tiny claws.

🚥 Pre-merge checks | ✅ 5
✅ Passed checks (5 passed)
Check name Status Explanation
Title check ✅ Passed The title clearly and specifically describes the main addition: documenting the default provider resolution feature across multiple documentation files.
Description check ✅ Passed The description comprehensively covers all required sections: summary of purpose, detailed changes, type of change, affected areas, testing instructions, breaking changes, security considerations, and a completed checklist.
Docstring Coverage ✅ Passed No functions found in the changed files to evaluate docstring coverage. Skipping docstring coverage check.
Linked Issues check ✅ Passed Check skipped because no linked issues were found for this pull request.
Out of Scope Changes check ✅ Passed Check skipped because no linked issues were found for this pull request.

✏️ Tip: You can configure your own custom pre-merge checks in the settings.

✨ Finishing Touches
🧪 Generate unit tests (beta)
  • Create PR with unit tests
  • Commit unit tests in branch 04-27-docs_default_provider_selection_doc_updates

Comment @coderabbitai help to get the list of available commands and usage tips.

@greptile-apps
Copy link
Copy Markdown
Contributor

greptile-apps Bot commented Apr 26, 2026

Confidence Score: 5/5

Documentation-only PR, safe to merge with one minor prose fix.

All findings are P2 style suggestions; no logic, security, or runtime issues introduced. The only new finding is a comma splice and missing period in one sentence.

No files require special attention beyond the minor prose fix in docs/quickstart/gateway/setting-up.mdx.

Important Files Changed

Filename Overview
docs/providers/provider-routing.mdx Adds the new "Default Provider Resolution" section explaining bare model-name handling via the Model Catalog, and applies widespread formatting fixes. The introductory sentence says resolution happens "after all other routing engines", while step 4 of "How It Works" says the resolved string "is used for load balancing and fallback handling" — a contradiction flagged in a prior thread that is still present.
docs/quickstart/gateway/setting-up.mdx Adds a note about bare model names with a link to the new Default Provider Resolution section (anchor is correct: #default-provider-resolution). Minor prose issue: comma splice and missing terminal period on the updated item 4.
docs/features/telemetry.mdx Adds "model-catalog" to the routing_engines_used label description and applies consistent formatting: aligned table columns, blank lines before code blocks, and reformatted callout blocks. No logic changes.
docs/architecture/framework/model-catalog.mdx Formatting-only refactor: adds blank lines after headings and re-indents <Info>/<Note>/<Tip> callout content. The two Direct/Prefixed example bullets previously inside the <Note> block are now placed outside it (at the root - indent level), which was flagged in a prior thread.

Reviews (7): Last reviewed commit: "docs: default provider selection doc upd..." | Re-trigger Greptile

Comment thread docs/architecture/framework/model-catalog.mdx Outdated
Comment thread docs/quickstart/gateway/setting-up.mdx Outdated
Comment thread docs/providers/provider-routing.mdx Outdated
Copy link
Copy Markdown
Contributor

@coderabbitai coderabbitai Bot left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Actionable comments posted: 3

🤖 Prompt for all review comments with AI agents
Verify each finding against the current code and only fix it if needed.

Inline comments:
In `@docs/architecture/framework/model-catalog.mdx`:
- Around line 330-331: The bulleted behavior examples are merged into a single
malformed line; split them into two separate list items so each bullet is its
own line. Locate the merged bullet containing the text with "gpt-4o" and
"openai/gpt-4o" and rewrite it as two bullets: one for the Direct example
("gpt-4o" matches "gpt-4o") and one for the Prefixed example ("openai/gpt-4o"
matches request for "gpt-4o" (prefix stripped)); ensure proper markdown list
formatting with leading "- " for each item.

In `@docs/providers/provider-routing.mdx`:
- Around line 840-848: Update the docs to state that model catalog resolution
runs early in request preparation (before governance, routing rules, and load
balancing) and that the resolved provider/model is passed into those downstream
engines; also change the wording around selection to note that
GetProvidersForModel returns providers from an unsorted map (mc.modelPool) and
that taking providers[0] is non-deterministic unless the implementation sorts or
otherwise stabilizes the order—reference GetProvidersForModel, mc.modelPool, and
the providers[0] selection so readers know the exact code behaviors to consider.

In `@docs/quickstart/gateway/setting-up.mdx`:
- Line 125: Update the link anchor used in the sentence that references the
Model Catalog: change the fragment from
"#default-provider-resolution-model-catalog" to the actual heading slug
"#default-provider-resolution" in the link text "[Model Catalog]" so the URL
becomes /providers/provider-routing#default-provider-resolution; ensure the
visible text and surrounding sentence ("Bifrost will automatically resolve the
provider via the [Model Catalog]") remain unchanged.
🪄 Autofix (Beta)

Fix all unresolved CodeRabbit comments on this PR:

  • Push a commit to this branch (recommended)
  • Create a new PR with the fixes

ℹ️ Review info
⚙️ Run configuration

Configuration used: Organization UI

Review profile: CHILL

Plan: Pro

Run ID: 5e755a48-b2d0-4f95-a151-1b74076d57f9

📥 Commits

Reviewing files that changed from the base of the PR and between 9bebc25 and 6fb5f20.

📒 Files selected for processing (4)
  • docs/architecture/framework/model-catalog.mdx
  • docs/features/telemetry.mdx
  • docs/providers/provider-routing.mdx
  • docs/quickstart/gateway/setting-up.mdx

Comment thread docs/architecture/framework/model-catalog.mdx Outdated
Comment thread docs/providers/provider-routing.mdx
Comment thread docs/quickstart/gateway/setting-up.mdx Outdated
@Pratham-Mishra04 Pratham-Mishra04 force-pushed the 04-27-docs_default_provider_selection_doc_updates branch from 6fb5f20 to 920eba0 Compare April 27, 2026 08:49
@Pratham-Mishra04 Pratham-Mishra04 force-pushed the 04-27-feat_add_default_provider_selection_in_integration_paths branch from 9bebc25 to 3017ffe Compare April 27, 2026 08:49
Comment thread docs/providers/provider-routing.mdx Outdated
@Pratham-Mishra04 Pratham-Mishra04 force-pushed the 04-27-feat_add_default_provider_selection_in_integration_paths branch from 3017ffe to d058099 Compare April 27, 2026 09:57
@Pratham-Mishra04 Pratham-Mishra04 force-pushed the 04-27-docs_default_provider_selection_doc_updates branch from 920eba0 to 62a5d4c Compare April 27, 2026 09:57
Copy link
Copy Markdown
Contributor

@coderabbitai coderabbitai Bot left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Actionable comments posted: 1

♻️ Duplicate comments (1)
docs/providers/provider-routing.mdx (1)

839-847: ⚠️ Potential issue | 🟡 Minor

Clarify the ordering statement vs. Step 4 behavior.

Line 839 says resolution happens after all other routing engines, but Line 846 says the resolved model is used for load balancing. Those two claims conflict and should be made consistent.

🤖 Prompt for AI Agents
Verify each finding against the current code and only fix it if needed.

In `@docs/providers/provider-routing.mdx` around lines 839 - 847, The doc
currently conflicts: it says provider resolution happens "after all other
routing engines" but also that the resolved provider/model is used for load
balancing; update the wording to make ordering clear by stating that Bifrost
runs other routing engines first, and if none resolve the provider it then calls
GetProvidersForModel("gpt-4o") and selects a provider; explicitly state that
this selection occurs before provider-specific load balancing and fallback
handling so Step 4 should read that the resolved "provider/model" is then used
for subsequent load-balancing and fallback logic.
🤖 Prompt for all review comments with AI agents
Verify each finding against the current code and only fix it if needed.

Inline comments:
In `@docs/providers/provider-routing.mdx`:
- Around line 855-867: The new "Default Provider Resolution" example must be
wrapped in Mintlify tab structure: replace the bare bash block with a <Tabs>
containing three <Tab>s titled "Web UI", "API", and "config.json"; put a short
UI note (e.g., that either `gpt-4o` or `openai/gpt-4o` works) in the Web UI tab,
move the existing curl/bash example into the API tab, and add a config.json tab
with a brief note (or a validated config snippet) stating that no extra
config.json entry is required; ensure the config.json content, if present,
conforms to transports/config.schema.json.

---

Duplicate comments:
In `@docs/providers/provider-routing.mdx`:
- Around line 839-847: The doc currently conflicts: it says provider resolution
happens "after all other routing engines" but also that the resolved
provider/model is used for load balancing; update the wording to make ordering
clear by stating that Bifrost runs other routing engines first, and if none
resolve the provider it then calls GetProvidersForModel("gpt-4o") and selects a
provider; explicitly state that this selection occurs before provider-specific
load balancing and fallback handling so Step 4 should read that the resolved
"provider/model" is then used for subsequent load-balancing and fallback logic.
🪄 Autofix (Beta)

Fix all unresolved CodeRabbit comments on this PR:

  • Push a commit to this branch (recommended)
  • Create a new PR with the fixes

ℹ️ Review info
⚙️ Run configuration

Configuration used: Organization UI

Review profile: CHILL

Plan: Pro

Run ID: 8b71dc62-c6e8-4693-88fc-3c7236458fd0

📥 Commits

Reviewing files that changed from the base of the PR and between 920eba0 and 62a5d4c.

📒 Files selected for processing (4)
  • docs/architecture/framework/model-catalog.mdx
  • docs/features/telemetry.mdx
  • docs/providers/provider-routing.mdx
  • docs/quickstart/gateway/setting-up.mdx
✅ Files skipped from review due to trivial changes (2)
  • docs/quickstart/gateway/setting-up.mdx
  • docs/architecture/framework/model-catalog.mdx
🚧 Files skipped from review as they are similar to previous changes (1)
  • docs/features/telemetry.mdx

Comment thread docs/providers/provider-routing.mdx
coderabbitai[bot]
coderabbitai Bot previously approved these changes Apr 27, 2026
Copy link
Copy Markdown
Contributor

akshaydeo commented Apr 28, 2026

Merge activity

@Pratham-Mishra04 Pratham-Mishra04 force-pushed the 04-27-docs_default_provider_selection_doc_updates branch from da8b364 to fe670d3 Compare April 28, 2026 07:07
@Pratham-Mishra04 Pratham-Mishra04 force-pushed the 04-27-feat_add_default_provider_selection_in_integration_paths branch from 63ac49f to f8cb0c4 Compare April 28, 2026 07:07
@akshaydeo akshaydeo changed the base branch from 04-27-feat_add_default_provider_selection_in_integration_paths to graphite-base/3069 April 28, 2026 07:16
@akshaydeo akshaydeo changed the base branch from graphite-base/3069 to main April 28, 2026 07:18
@akshaydeo akshaydeo dismissed coderabbitai[bot]’s stale review April 28, 2026 07:18

The base branch was changed.

@akshaydeo akshaydeo merged commit 02d0079 into main Apr 28, 2026
16 of 20 checks passed
@akshaydeo akshaydeo deleted the 04-27-docs_default_provider_selection_doc_updates branch April 28, 2026 07:19
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants