Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
21 changes: 21 additions & 0 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -101,6 +101,27 @@ The same as above, but you add a whole provider object to the top-level
If your provider needs extra HTTP headers (Anthropic does, for example), use
the optional `custom_header` array.

### Controlling live model listing (`supports_model_listing`)

The client's **Refresh (↻)** button on a provider page is hybrid: it merges
this curated registry list with whatever the provider returns from a live
`GET /v1/models`, deduped by id. This is what lets custom / self-hosted
providers (vLLM, llama.cpp, LM Studio, …) surface their real model ids.

For a few clouds the live `/v1/models` endpoint returns hundreds of
junk/internal ids that would pollute the picker. To opt such a provider out of
the live probe, set the optional boolean:

```json
"supports_model_listing": false
```

- `true` (or the field omitted) → registry list ∪ live `/v1/models` (default).
- `false` → curated registry list only; the client never calls `/v1/models`.

This is backwards-compatible — older clients simply ignore the field — so it
does **not** require a `schema_version` bump.

## Capabilities

The `capabilities` array on each model uses these values:
Expand Down
5 changes: 5 additions & 0 deletions providers/schema.json
Original file line number Diff line number Diff line change
Expand Up @@ -41,6 +41,11 @@
"pattern": "^[a-z0-9_-]+$",
"description": "Stable, unique provider id. Lowercase, no spaces."
},
"supports_model_listing": {
"type": "boolean",
"default": true,
"description": "Controls the client's Refresh (\u21bb) button. true or absent: show the curated registry list UNION the provider's live GET /v1/models. false: show the curated registry list only and skip the live probe (use when /v1/models returns hundreds of junk/internal model ids)."
},
"settings": {
"type": "array",
"items": { "$ref": "#/definitions/providerSetting" }
Expand Down
Loading