feat(providers): add QuickSilver Pro - #4086
Open
raullenchai wants to merge 1 commit into
Open
Conversation
QuickSilver Pro is an OpenAI-compatible inference API at https://api.quicksilverpro.io/v1 serving 32 token-billed models. All model files use base_model against existing entries in models/ and are override-only. Costs are the published retail per-million-token rates, each cross-checked against the live GET /v1/models payload and, for a sample spanning seven model families, against the amount actually billed for a real call. Capability flags (tool calling, structured output, vision, reasoning controls) were probed against the live endpoint rather than inherited on trust; the per-model files record where this endpoint differs from the lab metadata.
Contributor
Action items
|
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
Adds QuickSilver Pro as a provider.
QuickSilver Pro is an inference API with an OpenAI-compatible chat-completions
surface: one API key, one balance, pay-as-you-go, no subscription.
https://api.quicksilverpro.io/v1GET https://api.quicksilverpro.io/v1/modelsAuthorization: Bearer <key>, envQSP_API_KEY@ai-sdk/openai-compatibleThe endpoint works unchanged with the official
openaiclients. Streaming andtool calling work on every model in this PR; structured output works on most,
and the per-model files record the exceptions.
Files
providers/quicksilver-pro/provider.tomlproviders/quicksilver-pro/logo.svgproviders/quicksilver-pro/models/*.toml— 32 modelsEvery model file uses
base_modelagainst an existing entry inmodels/and isoverride-only. No new lab metadata was needed — all 32 underlying models already
exist in this repo.
bun validatepasses.Data provenance
The files are generated from our published catalogue by script, not hand-typed.
costvalues are the retail per-million-token rates charged to the caller.Verification (2026-08-05)
1. Model list. Our catalogue and the live
GET /v1/modelsagree exactly —same 33 ids, no drift in either direction. 32 are in this PR (see Notes).
2. Prices match the live API.
GET /v1/modelsreturns per-token prices.Every
cost.input/cost.outputin this PR equals that value × 10⁶ to within1e-9, checked programmatically for all 32 models.
3. Prices match what is actually billed. For 7 models spanning 7 different
model families we made real calls and compared
usage× the price publishedhere against the recorded spend for that same call:
A second round with cache hits reproduced the published
cost.cache_readratesexactly (e.g.
deepseek-v4-flash0.00224,glm-5.20.208 per 1M), so thecache_readfigures here are also reproducible from a caller's own usagenumbers.
4. Capability flags were probed, not assumed. Rather than inherit
capabilities on trust, we tested them against the live endpoint and recorded the
differences:
tool_callsresponse.response_format: json_schemaandreturn schema-conforming JSON.
qwen3.7-flashandqwen3.6-plusreject itwith HTTP 400 (
json_objectworks); the six Claude models accept it but donot enforce it. Those eight carry
structured_output = false.control, so a correct answer cannot be a lucky guess. This surfaced one
correction —
minimax-m3accepts an image payload with HTTP 200 but the modeldoes not receive it, so its
modalities.inputis published as text-only hererather than inheriting image/video.
reasoning_effortvalues per model, with adeliberately invalid value as a control. The Gemini lines validate the enum
(
xhigh/maxare rejected) and several show a clear response to the level,so they carry the accepted
effortvalues.deepseek-v4-proreproduciblydrops to zero reasoning tokens on
none, so it carries atoggle. On theremaining models the parameter is accepted but had no observable effect, so
they carry
reasoning_options = []per the "no caller control" convention.Notes for reviewers
flux.2-prois billed per generatedimage, not per token, and is only exposed on
images.generations. Thecostschema has no per-image field and
limit.context/limit.outputare required,so it is omitted rather than misrepresented as a token price. Happy to add it
if there is a preferred way to express per-image pricing.
status = "deprecated"(gemini-3-flash-preview,gemini-3.1-flash-lite). They are still served and billable today, but are onour sunset path and we would rather not have tooling default to them. If you
read
deprecatedstrictly as "already removed", say so and we will drop themfrom this PR instead.
catalogue. Our catalogue rounds several context windows up to 1,048,576;
where that exceeds the lab figure in this repo we deliberately kept the lower,
correct number rather than publish an inflated limit. We override
limitonlywhere we genuinely serve less (
kimi-k2.6andkimi-k2.7-codeat 256,000;the three
gpt-5.6-*lines at 1,048,576). We are fixing the rounding on ourside separately.
gemini-3-pro-imagereturned a valid tool call in our probe even though thelab entry has
tool_call = false. We left the lab value alone rather thanclaim the capability off a single observation.