Skip to content

Add BlazeRail to the AI gateway benchmarks (Anthropic, Gemini, Kimi families) - #361

Open
nazerfaze wants to merge 1 commit into
computesdk:masterfrom
nazerfaze:add-blazerail-gateway
Open

Add BlazeRail to the AI gateway benchmarks (Anthropic, Gemini, Kimi families)#361
nazerfaze wants to merge 1 commit into
computesdk:masterfrom
nazerfaze:add-blazerail-gateway

Conversation

@nazerfaze

@nazerfaze nazerfaze commented Aug 22, 2026

Copy link
Copy Markdown

Following up on the X ping: BlazeRail is an OpenAI-compatible AI gateway (220+ text models, media endpoints, invoiced vendor rates, no markup) and we'd like to join the gateway benchmarks.

What's in this PR - blazerail provider entries for the three families we serve today, in each file's existing config shape:

  • providers.ts (Anthropic family): anthropic/claude-haiku-4.5 via /v1/chat/completions, wireFormat openai - the gateway translates Anthropic's native SSE to OpenAI chunks itself, no gateway-through-gateway proxying
  • providers-gemini.ts: google/gemini-3.6-flash - served by exactly one upstream (Google AI Studio direct), deterministic without a provider pin
  • providers-kimi.ts: moonshotai/kimi-k3 - multi-upstream, routed by measured health/price like the other multi-upstream participants

Validation: each entry was run against the live API with this harness (BENCHSDK_NO_INGEST=1 ... --provider blazerail --iterations 10) - 20/20 iterations per family, zero failures, receipts carrying cf-ray ids.

Credentials: we'll provide a dedicated API key with standing credit for the weekly runs - tell us where to send it (email in the commit message, or DM the X account that pinged you).

Requires BLAZERAIL_API_KEY; per the harness's env-gating, the entries are inert until you set it.


Open in Devin Review

BlazeRail (https://blazerail.com) is an OpenAI-compatible AI gateway
routing 220+ text models and 1,000+ media endpoints, billed at invoiced
vendor rates. Entries follow the existing config conventions:

- wireFormat 'openai' via /v1/chat/completions on all three families
  (the gateway translates Anthropic/Gemini SSE to OpenAI chunks
  natively; no gateway-through-gateway proxying)
- anthropic/claude-haiku-4.5, google/gemini-3.6-flash and
  moonshotai/kimi-k3 are BlazeRail's public catalog ids for the exact
  target models
- gemini-3.6-flash is served by exactly one upstream (Google AI Studio
  direct), so that route is deterministic without a provider pin;
  claude-haiku-4.5 and kimi-k3 are multi-upstream and routed by
  measured health/price, which is the product behavior being
  benchmarked (same posture as other multi-upstream participants)

All three entries validated against the live API with this harness
(BENCHSDK_NO_INGEST=1, --provider blazerail): 20/20 iterations per
family, zero failures. Happy to provide an API key with standing
credit for the weekly runs - contact info@deltaedgecapital.co.uk or
the X account that pinged you.
@open-cla

open-cla Bot commented Aug 22, 2026

Copy link
Copy Markdown

Contributor License Agreement

The following contributors need CLA coverage:

Review and sign the CLA

@devin-ai-integration devin-ai-integration Bot left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

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

Devin Review found 2 potential issues.

Open in Devin Review

Comment on lines +216 to +225
name: 'blazerail',
requiredEnvVars: ['BLAZERAIL_API_KEY'],
wireFormat: 'openai',
model: 'moonshotai/kimi-k3',
host: 'api.blazerail.com',
path: '/v1/chat/completions',
buildHeaders: () => ({
Authorization: `Bearer ${process.env.BLAZERAIL_API_KEY}`,
}),
},

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

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

🔴 BlazeRail Kimi requests send a rejected temperature

This entry omits extraBody, so the request keeps the default temperature: 0 from buildRequestBody (benchmarks/ai-gateway/phase-probe.ts:82). Every sibling Kimi entry strips it with temperature: undefined because kimi-k3 rejects any temperature but 1, so every BlazeRail Kimi iteration fails.

Suggested change
name: 'blazerail',
requiredEnvVars: ['BLAZERAIL_API_KEY'],
wireFormat: 'openai',
model: 'moonshotai/kimi-k3',
host: 'api.blazerail.com',
path: '/v1/chat/completions',
buildHeaders: () => ({
Authorization: `Bearer ${process.env.BLAZERAIL_API_KEY}`,
}),
},
name: 'blazerail',
requiredEnvVars: ['BLAZERAIL_API_KEY'],
wireFormat: 'openai',
model: 'moonshotai/kimi-k3',
host: 'api.blazerail.com',
path: '/v1/chat/completions',
buildHeaders: () => ({
Authorization: `Bearer ${process.env.BLAZERAIL_API_KEY}`,
}),
extraBody: {
temperature: undefined,
},
reasoningCountsAsFirstToken: true,
},
Open in Devin Review

Was this helpful? React with 👍 or 👎 to provide feedback.

Comment on lines +216 to +225
name: 'blazerail',
requiredEnvVars: ['BLAZERAIL_API_KEY'],
wireFormat: 'openai',
model: 'moonshotai/kimi-k3',
host: 'api.blazerail.com',
path: '/v1/chat/completions',
buildHeaders: () => ({
Authorization: `Bearer ${process.env.BLAZERAIL_API_KEY}`,
}),
},

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

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

🔴 BlazeRail Kimi TTFT measures first visible token, not reasoning

This entry omits reasoningCountsAsFirstToken: true that every other openai Kimi entry sets, so contentRegexFor uses the non-reasoning pattern (benchmarks/ai-gateway/phase-probe.ts:64). Because kimi-k3 reasons before answering, TTFT captures the whole reasoning phase and is inflated far above the other participants.

Open in Devin Review

Was this helpful? React with 👍 or 👎 to provide feedback.

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.

1 participant