diff --git a/benchmarks/ai-gateway/providers-gemini.ts b/benchmarks/ai-gateway/providers-gemini.ts index 80e8b313..5ede6f04 100644 --- a/benchmarks/ai-gateway/providers-gemini.ts +++ b/benchmarks/ai-gateway/providers-gemini.ts @@ -203,6 +203,21 @@ export const providers: AIGatewayProviderConfig[] = [ buf.match(/"provider"\s*:\s*"([^"]+)"/)?.[1] ?? buf.match(/"model"\s*:\s*"([^"/]+)\/[^"]*"/)?.[1], }, + { + // BlazeRail: OpenAI-compatible /v1/chat/completions surface, same shape + // as the llmgateway entry. google/gemini-3.6-flash is served by exactly + // one upstream on BlazeRail (Google AI Studio direct), so the route is + // deterministic without a provider-order pin. + name: 'blazerail', + requiredEnvVars: ['BLAZERAIL_API_KEY'], + wireFormat: 'openai', + model: 'google/gemini-3.6-flash', + host: 'api.blazerail.com', + path: '/v1/chat/completions', + buildHeaders: () => ({ + Authorization: `Bearer ${process.env.BLAZERAIL_API_KEY}`, + }), + }, { // No-gateway baseline/control. Gemini's native `streamGenerateContent` // endpoint (not the OpenAI-compatibility shim Google also exposes) — diff --git a/benchmarks/ai-gateway/providers-kimi.ts b/benchmarks/ai-gateway/providers-kimi.ts index 5d2553cb..64204a7d 100644 --- a/benchmarks/ai-gateway/providers-kimi.ts +++ b/benchmarks/ai-gateway/providers-kimi.ts @@ -207,6 +207,22 @@ export const providers: AIGatewayProviderConfig[] = [ }, reasoningCountsAsFirstToken: true, }, + { + // BlazeRail: OpenAI-compatible /v1/chat/completions. moonshotai/kimi-k3 is + // BlazeRail-s public id for the model; routing picks among its five live + // upstreams (CrofAI, DeepInfra, Wafer, Moonshot AI, Modal) by measured + // latency and price, which is the product behavior being benchmarked - + // same posture as the other multi-upstream gateways in this family. + 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: 'novita', requiredEnvVars: ['NOVITA_API_KEY'], diff --git a/benchmarks/ai-gateway/providers.ts b/benchmarks/ai-gateway/providers.ts index bdf6554f..2dd6de56 100644 --- a/benchmarks/ai-gateway/providers.ts +++ b/benchmarks/ai-gateway/providers.ts @@ -90,6 +90,21 @@ export const providers: AIGatewayProviderConfig[] = [ ...(process.env.CLOUDFLARE_AI_GATEWAY_TOKEN ? { 'cf-aig-authorization': `Bearer ${process.env.CLOUDFLARE_AI_GATEWAY_TOKEN}` } : {}), }), }, + { + // BlazeRail: OpenAI-compatible /v1/chat/completions; the gateway translates + // Anthropic-'s native SSE to OpenAI chunks internally. anthropic/claude-haiku-4.5 + // is BlazeRail-s public id; it is served by Anthropic direct and DeepInfra, + // routed by measured health/price - the product behavior being benchmarked. + name: 'blazerail', + requiredEnvVars: ['BLAZERAIL_API_KEY'], + wireFormat: 'openai', + model: 'anthropic/claude-haiku-4.5', + host: 'api.blazerail.com', + path: '/v1/chat/completions', + buildHeaders: () => ({ + Authorization: `Bearer ${process.env.BLAZERAIL_API_KEY}`, + }), + }, { // `anthropic/` here is LLM Gateway's provider-pinning syntax (provider/model), // so requests route to Anthropic itself — the same underlying model and