feat(pioneer): add 26 models (Kimi K3, Claude Opus 5, GPT-5.6) (#3814)
* fix(pioneer): filter API alias dupes, derive cost, honor base-model reasoning Pioneer /v1/models returns each served model twice: once under its real id and once under a duplicate "anthropic/pioneer/<id>" alias. Drop the aliases so the sync no longer authors phantom "anthropic/pioneer/*" TOMLs. Also derive cost from the API's per-1M-token prices for newly created models (previously cost was only preserved from an existing file), and trust the base model's authored reasoning flag instead of Pioneer's boilerplate reasoning levels, which are identical for every model and were wrongly marking non-reasoning models (e.g. Pixtral) as reasoning. Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com> * feat(pioneer): add frontier and open models via base_model inheritance Add 26 Pioneer models, each inheriting provider-agnostic facts through base_model rather than duplicating them inline. New model metadata entries: - anthropic/claude-opus-5 (released 2026-07-24) - alibaba/qwen2.5-coder-0.5b, alibaba/qwen3-235b-a22b-instruct-2507 - deepseek/deepseek-v3, deepseek/deepseek-v3.1 - meta/llama-3.2-1b, meta/llama-3.2-3b - mistral/codestral-22b-v0.1, mistral/magistral-small-2506, mistral/ministral-8b-instruct-2410 Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com> * fix(qwen): set tool_call=false for Qwen2.5-Coder-0.5B base model The served id and weights are the base (pretrained) checkpoint, not the Instruct variant. The Qwen model card states base models are not recommended for conversation and documents no tool/function calling, so tool_call=true was inaccurate. Matches the Llama base entries in this PR. --------- Co-authored-by: Samrath <samrath@Samraths-MacBook-Pro-6.local> Co-authored-by: Claude Opus 4.8 <noreply@anthropic.com>
This commit is contained in:
@@ -0,0 +1,23 @@
|
||||
name = "Qwen2.5-Coder-0.5B"
|
||||
description = "Tiny open Qwen code model for lightweight completion and on-device coding"
|
||||
family = "qwen"
|
||||
release_date = "2024-11-12"
|
||||
last_updated = "2024-11-12"
|
||||
attachment = false
|
||||
reasoning = false
|
||||
temperature = true
|
||||
tool_call = false
|
||||
open_weights = true
|
||||
license = "Apache 2.0"
|
||||
|
||||
[limit]
|
||||
context = 32_768
|
||||
output = 8_192
|
||||
|
||||
[modalities]
|
||||
input = ["text"]
|
||||
output = ["text"]
|
||||
|
||||
[[weights]]
|
||||
label = "Hugging Face"
|
||||
url = "https://huggingface.co/Qwen/Qwen2.5-Coder-0.5B"
|
||||
@@ -0,0 +1,23 @@
|
||||
name = "Qwen3 235B-A22B Instruct 2507"
|
||||
description = "Updated large open Qwen3 MoE instruct model for multilingual chat, coding, and tool use"
|
||||
family = "qwen"
|
||||
release_date = "2025-07-21"
|
||||
last_updated = "2025-07-21"
|
||||
attachment = false
|
||||
reasoning = false
|
||||
temperature = true
|
||||
tool_call = true
|
||||
open_weights = true
|
||||
license = "Apache 2.0"
|
||||
|
||||
[limit]
|
||||
context = 262_144
|
||||
output = 16_384
|
||||
|
||||
[modalities]
|
||||
input = ["text"]
|
||||
output = ["text"]
|
||||
|
||||
[[weights]]
|
||||
label = "Hugging Face"
|
||||
url = "https://huggingface.co/Qwen/Qwen3-235B-A22B-Instruct-2507"
|
||||
@@ -0,0 +1,23 @@
|
||||
name = "DeepSeek-V3.1"
|
||||
description = "Hybrid-reasoning DeepSeek model with thinking and non-thinking modes"
|
||||
family = "deepseek"
|
||||
release_date = "2025-08-21"
|
||||
last_updated = "2025-08-21"
|
||||
attachment = false
|
||||
reasoning = true
|
||||
temperature = true
|
||||
tool_call = true
|
||||
open_weights = true
|
||||
license = "MIT License"
|
||||
|
||||
[limit]
|
||||
context = 131_072
|
||||
output = 8_192
|
||||
|
||||
[modalities]
|
||||
input = ["text"]
|
||||
output = ["text"]
|
||||
|
||||
[[weights]]
|
||||
label = "Hugging Face"
|
||||
url = "https://huggingface.co/deepseek-ai/DeepSeek-V3.1"
|
||||
@@ -0,0 +1,23 @@
|
||||
name = "DeepSeek-V3"
|
||||
description = "Open DeepSeek MoE chat model for coding, math, and general reasoning"
|
||||
family = "deepseek"
|
||||
release_date = "2024-12-26"
|
||||
last_updated = "2024-12-26"
|
||||
attachment = false
|
||||
reasoning = false
|
||||
temperature = true
|
||||
tool_call = true
|
||||
open_weights = true
|
||||
license = "DeepSeek Model License"
|
||||
|
||||
[limit]
|
||||
context = 131_072
|
||||
output = 8_192
|
||||
|
||||
[modalities]
|
||||
input = ["text"]
|
||||
output = ["text"]
|
||||
|
||||
[[weights]]
|
||||
label = "Hugging Face"
|
||||
url = "https://huggingface.co/deepseek-ai/DeepSeek-V3"
|
||||
@@ -0,0 +1,24 @@
|
||||
name = "Llama-3.2-1B"
|
||||
description = "Compact open Llama base model for lightweight and on-device use"
|
||||
family = "llama"
|
||||
release_date = "2024-09-25"
|
||||
last_updated = "2024-09-25"
|
||||
attachment = false
|
||||
reasoning = false
|
||||
temperature = true
|
||||
tool_call = false
|
||||
knowledge = "2023-12"
|
||||
open_weights = true
|
||||
license = "Llama 3.2 Community License"
|
||||
|
||||
[limit]
|
||||
context = 131_072
|
||||
output = 8_192
|
||||
|
||||
[modalities]
|
||||
input = ["text"]
|
||||
output = ["text"]
|
||||
|
||||
[[weights]]
|
||||
label = "Hugging Face"
|
||||
url = "https://huggingface.co/meta-llama/Llama-3.2-1B"
|
||||
@@ -0,0 +1,24 @@
|
||||
name = "Llama-3.2-3B"
|
||||
description = "Small open Llama base model for lightweight text generation and self-hosting"
|
||||
family = "llama"
|
||||
release_date = "2024-09-25"
|
||||
last_updated = "2024-09-25"
|
||||
attachment = false
|
||||
reasoning = false
|
||||
temperature = true
|
||||
tool_call = false
|
||||
knowledge = "2023-12"
|
||||
open_weights = true
|
||||
license = "Llama 3.2 Community License"
|
||||
|
||||
[limit]
|
||||
context = 131_072
|
||||
output = 8_192
|
||||
|
||||
[modalities]
|
||||
input = ["text"]
|
||||
output = ["text"]
|
||||
|
||||
[[weights]]
|
||||
label = "Hugging Face"
|
||||
url = "https://huggingface.co/meta-llama/Llama-3.2-3B"
|
||||
@@ -0,0 +1,23 @@
|
||||
name = "Codestral-22B-v0.1"
|
||||
description = "Open Mistral code model for fill-in-the-middle and 80+ programming languages"
|
||||
family = "codestral"
|
||||
release_date = "2024-05-29"
|
||||
last_updated = "2024-05-29"
|
||||
attachment = false
|
||||
reasoning = false
|
||||
temperature = true
|
||||
tool_call = false
|
||||
open_weights = true
|
||||
license = "Mistral AI Non-Production License"
|
||||
|
||||
[limit]
|
||||
context = 32_768
|
||||
output = 8_192
|
||||
|
||||
[modalities]
|
||||
input = ["text"]
|
||||
output = ["text"]
|
||||
|
||||
[[weights]]
|
||||
label = "Hugging Face"
|
||||
url = "https://huggingface.co/mistralai/Codestral-22B-v0.1"
|
||||
@@ -0,0 +1,23 @@
|
||||
name = "Magistral Small"
|
||||
description = "Open Mistral reasoning model for transparent step-by-step problem solving"
|
||||
family = "magistral"
|
||||
release_date = "2025-06-10"
|
||||
last_updated = "2025-06-10"
|
||||
attachment = false
|
||||
reasoning = true
|
||||
temperature = true
|
||||
tool_call = true
|
||||
open_weights = true
|
||||
license = "Apache 2.0"
|
||||
|
||||
[limit]
|
||||
context = 131_072
|
||||
output = 8_192
|
||||
|
||||
[modalities]
|
||||
input = ["text"]
|
||||
output = ["text"]
|
||||
|
||||
[[weights]]
|
||||
label = "Hugging Face"
|
||||
url = "https://huggingface.co/mistralai/Magistral-Small-2506"
|
||||
@@ -0,0 +1,23 @@
|
||||
name = "Ministral 8B Instruct"
|
||||
description = "Efficient open Mistral edge model for on-device chat and function calling"
|
||||
family = "ministral"
|
||||
release_date = "2024-10-16"
|
||||
last_updated = "2024-10-16"
|
||||
attachment = false
|
||||
reasoning = false
|
||||
temperature = true
|
||||
tool_call = true
|
||||
open_weights = true
|
||||
license = "Mistral Research License"
|
||||
|
||||
[limit]
|
||||
context = 131_072
|
||||
output = 8_192
|
||||
|
||||
[modalities]
|
||||
input = ["text"]
|
||||
output = ["text"]
|
||||
|
||||
[[weights]]
|
||||
label = "Hugging Face"
|
||||
url = "https://huggingface.co/mistralai/Ministral-8B-Instruct-2410"
|
||||
@@ -1,19 +1,64 @@
|
||||
import { readFileSync } from "node:fs";
|
||||
import path from "node:path";
|
||||
|
||||
import { z } from "zod";
|
||||
|
||||
import { describeModel } from "../../describe.js";
|
||||
import type { ExistingModel, SyncProvider, SyncedFullModel, SyncedModel } from "../index.js";
|
||||
import { factorBaseModel } from "./openrouter.js";
|
||||
|
||||
const MODELS_DIR = path.join(import.meta.dirname, "..", "..", "..", "..", "..", "models");
|
||||
const baseModelReasoningCache = new Map<string, boolean>();
|
||||
|
||||
/** Whether the base model's authored metadata declares it a reasoning model. */
|
||||
function baseModelReasoning(modelID: string): boolean {
|
||||
let value = baseModelReasoningCache.get(modelID);
|
||||
if (value === undefined) {
|
||||
const parsed = Bun.TOML.parse(
|
||||
readFileSync(path.join(MODELS_DIR, `${modelID}.toml`), "utf8"),
|
||||
) as Record<string, unknown>;
|
||||
value = parsed.reasoning === true;
|
||||
baseModelReasoningCache.set(modelID, value);
|
||||
}
|
||||
return value;
|
||||
}
|
||||
|
||||
const API_ENDPOINT = "https://api.pioneer.ai/v1/models";
|
||||
|
||||
const BaseModels: Record<string, string> = {
|
||||
"Qwen/Qwen2.5-Coder-0.5B": "alibaba/qwen2.5-coder-0.5b",
|
||||
"Qwen/Qwen3-235B-A22B-Instruct-2507": "alibaba/qwen3-235b-a22b-instruct-2507",
|
||||
"Qwen/Qwen3.5-9B": "alibaba/qwen3.5-9b",
|
||||
"deepseek-ai/DeepSeek-V3": "deepseek/deepseek-v3",
|
||||
"deepseek-ai/DeepSeek-V3.1": "deepseek/deepseek-v3.1",
|
||||
"meta-llama/Llama-3.2-1B": "meta/llama-3.2-1b",
|
||||
"meta-llama/Llama-3.2-3B": "meta/llama-3.2-3b",
|
||||
"mistralai/Codestral-22B-v0.1": "mistral/codestral-22b-v0.1",
|
||||
"mistralai/Magistral-Small-2506": "mistral/magistral-small-2506",
|
||||
"mistralai/Ministral-8B-Instruct-2410": "mistral/ministral-8b-instruct-2410",
|
||||
"claude-3-7-sonnet-latest": "anthropic/claude-3-7-sonnet-20250219",
|
||||
"claude-fable-5": "anthropic/claude-fable-5",
|
||||
"claude-opus-5": "anthropic/claude-opus-5",
|
||||
"claude-sonnet-5": "anthropic/claude-sonnet-5",
|
||||
"devstral-2": "mistral/devstral-2512",
|
||||
"gemini-3.1-flash-lite": "google/gemini-3.1-flash-lite",
|
||||
"gemini-3.5-flash-lite": "google/gemini-3.5-flash-lite",
|
||||
"gemini-3.6-flash": "google/gemini-3.6-flash",
|
||||
"google/gemma-4-E2B-it": "google/gemma-4-E2B-it",
|
||||
"google/gemma-4-E4B-it": "google/gemma-4-E4B-it",
|
||||
"gpt-5.6-luna": "openai/gpt-5.6-luna",
|
||||
"gpt-5.6-sol": "openai/gpt-5.6-sol",
|
||||
"gpt-5.6-terra": "openai/gpt-5.6-terra",
|
||||
"grok-4.5": "xai/grok-4.5",
|
||||
"meta/muse-spark-1.1": "meta/muse-spark-1.1",
|
||||
"mistral-large-3": "mistral/mistral-large-2512",
|
||||
"mistral-medium-3.5": "mistral/mistral-medium-2604",
|
||||
"mistralai/Pixtral-12B-2409": "mistral/pixtral-12b",
|
||||
"moonshotai/Kimi-K2.7-Code": "moonshotai/kimi-k2.7-code",
|
||||
"moonshotai/Kimi-K3": "moonshotai/kimi-k3",
|
||||
"openai/gpt-oss-120b": "openai/gpt-oss-120b",
|
||||
"openai/gpt-oss-20b": "openai/gpt-oss-20b",
|
||||
"poolside/laguna-s-2.1": "poolside/laguna-s-2.1",
|
||||
"sakana/fugu-ultra": "sakana/fugu-ultra",
|
||||
"zai-org/GLM-5.2": "zhipuai/glm-5.2",
|
||||
};
|
||||
@@ -63,6 +108,10 @@ const PioneerServedModel = z
|
||||
max_input_tokens: z.number().int().nonnegative(),
|
||||
max_tokens: z.number().int().nonnegative(),
|
||||
deprecated: z.boolean().optional(),
|
||||
input_price_per_million: z.number().nonnegative().optional(),
|
||||
output_price_per_million: z.number().nonnegative().optional(),
|
||||
cache_read_price_per_million: z.number().nonnegative().optional(),
|
||||
cache_write_price_per_million: z.number().nonnegative().optional(),
|
||||
capabilities: z
|
||||
.object({
|
||||
image_input: Capability.optional(),
|
||||
@@ -106,10 +155,16 @@ export const pioneer = {
|
||||
parseModels(raw) {
|
||||
const parsed = PioneerResponse.parse(raw);
|
||||
const metadata = new Map(parsed.models.map((model) => [model.slug, model]));
|
||||
return parsed.data.map((model) => ({
|
||||
...model,
|
||||
metadata: metadata.get(model.id),
|
||||
}));
|
||||
// Pioneer /v1/models returns each served model twice: once under its real
|
||||
// id (e.g. "gpt-4o") and once under a duplicate "anthropic/pioneer/<id>"
|
||||
// alias. The aliased entries are not real catalog models; drop them so the
|
||||
// sync does not author phantom "anthropic/pioneer/*" TOMLs.
|
||||
return parsed.data
|
||||
.filter((model) => !model.id.startsWith("anthropic/pioneer/"))
|
||||
.map((model) => ({
|
||||
...model,
|
||||
metadata: metadata.get(model.id),
|
||||
}));
|
||||
},
|
||||
translateModel(model, context) {
|
||||
return {
|
||||
@@ -162,6 +217,28 @@ function pioneerReasoningOptions(model: PioneerModel): SyncedFullModel["reasonin
|
||||
return values.length > 0 ? [{ type: "effort", values }] : undefined;
|
||||
}
|
||||
|
||||
function pioneerCost(
|
||||
model: PioneerModel,
|
||||
existing: ExistingModel | undefined,
|
||||
): SyncedFullModel["cost"] {
|
||||
// Preserve any hand-authored cost; otherwise derive from the API's
|
||||
// per-1M-token prices (which are already in the catalog's per-1M unit).
|
||||
if (existing?.cost !== undefined) return existing.cost;
|
||||
if (model.input_price_per_million === undefined || model.output_price_per_million === undefined) {
|
||||
return undefined;
|
||||
}
|
||||
return {
|
||||
input: model.input_price_per_million,
|
||||
output: model.output_price_per_million,
|
||||
...(model.cache_read_price_per_million !== undefined
|
||||
? { cache_read: model.cache_read_price_per_million }
|
||||
: {}),
|
||||
...(model.cache_write_price_per_million !== undefined
|
||||
? { cache_write: model.cache_write_price_per_million }
|
||||
: {}),
|
||||
};
|
||||
}
|
||||
|
||||
function buildPioneerModel(
|
||||
model: PioneerModel,
|
||||
existing: ExistingModel | undefined,
|
||||
@@ -179,12 +256,19 @@ function buildPioneerModel(
|
||||
input: existing?.limit?.input,
|
||||
output: model.max_tokens,
|
||||
};
|
||||
// Pioneer reports identical boilerplate reasoning levels for every model,
|
||||
// so it is not a reliable reasoning signal. Trust the base model's authored
|
||||
// metadata: only mark reasoning / attach reasoning_options when the base
|
||||
// model is genuinely a reasoning model.
|
||||
const baseReasoning = baseModelReasoning(baseModel);
|
||||
return factorBaseModel(baseModel, {
|
||||
cost: existing?.cost,
|
||||
reasoning: apiReasoningOptions !== undefined ? true : undefined,
|
||||
reasoning_options: reasoningOptions,
|
||||
cost: pioneerCost(model, existing),
|
||||
reasoning: undefined,
|
||||
reasoning_options: baseReasoning
|
||||
? (apiReasoningOptions ?? existing?.reasoning_options)
|
||||
: undefined,
|
||||
status,
|
||||
interleaved,
|
||||
interleaved: baseReasoning ? interleaved : undefined,
|
||||
limit,
|
||||
}, limit, existing?.base_model_omit);
|
||||
}
|
||||
@@ -221,7 +305,7 @@ function buildPioneerModel(
|
||||
open_weights: existing?.open_weights ?? false,
|
||||
status,
|
||||
interleaved,
|
||||
cost: existing?.cost,
|
||||
cost: pioneerCost(model, existing),
|
||||
limit: {
|
||||
context: model.max_input_tokens,
|
||||
input: existing?.limit?.input,
|
||||
|
||||
@@ -89,8 +89,10 @@ export type ModelFamily =
|
||||
| "kimi"
|
||||
| "kimi-free"
|
||||
| "kimi-k2"
|
||||
| "kimi-k3"
|
||||
| "kimi-thinking"
|
||||
| "laguna"
|
||||
| "laguna-s"
|
||||
| "ling"
|
||||
| "ling-flash-free"
|
||||
| "liquid"
|
||||
|
||||
@@ -0,0 +1,10 @@
|
||||
base_model = "alibaba/qwen2.5-coder-0.5b"
|
||||
|
||||
[cost]
|
||||
input = 0.1
|
||||
output = 0.1
|
||||
cache_read = 0.1
|
||||
cache_write = 0.1
|
||||
|
||||
[limit]
|
||||
output = 32_768
|
||||
@@ -0,0 +1,10 @@
|
||||
base_model = "alibaba/qwen3-235b-a22b-instruct-2507"
|
||||
|
||||
[cost]
|
||||
input = 1.2
|
||||
output = 1.2
|
||||
cache_read = 1.2
|
||||
cache_write = 1.2
|
||||
|
||||
[limit]
|
||||
output = 131_072
|
||||
@@ -0,0 +1,18 @@
|
||||
base_model = "anthropic/claude-3-7-sonnet-20250219"
|
||||
|
||||
[interleaved]
|
||||
field = "reasoning_content"
|
||||
|
||||
[[reasoning_options]]
|
||||
type = "effort"
|
||||
values = ["low", "medium", "high"]
|
||||
|
||||
[cost]
|
||||
input = 3
|
||||
output = 15
|
||||
cache_read = 0.3
|
||||
cache_write = 3.75
|
||||
|
||||
[limit]
|
||||
context = 1_000_000
|
||||
output = 128_000
|
||||
@@ -0,0 +1,14 @@
|
||||
base_model = "anthropic/claude-fable-5"
|
||||
|
||||
[interleaved]
|
||||
field = "reasoning_content"
|
||||
|
||||
[[reasoning_options]]
|
||||
type = "effort"
|
||||
values = ["low", "medium", "high", "xhigh"]
|
||||
|
||||
[cost]
|
||||
input = 11
|
||||
output = 55
|
||||
cache_read = 1.1
|
||||
cache_write = 13.75
|
||||
@@ -0,0 +1,14 @@
|
||||
base_model = "anthropic/claude-opus-5"
|
||||
|
||||
[interleaved]
|
||||
field = "reasoning_content"
|
||||
|
||||
[[reasoning_options]]
|
||||
type = "effort"
|
||||
values = ["low", "medium", "high"]
|
||||
|
||||
[cost]
|
||||
input = 5
|
||||
output = 25
|
||||
cache_read = 0.5
|
||||
cache_write = 6.25
|
||||
@@ -0,0 +1,14 @@
|
||||
base_model = "anthropic/claude-sonnet-5"
|
||||
|
||||
[interleaved]
|
||||
field = "reasoning_content"
|
||||
|
||||
[[reasoning_options]]
|
||||
type = "effort"
|
||||
values = ["low", "medium", "high"]
|
||||
|
||||
[cost]
|
||||
input = 2
|
||||
output = 10
|
||||
cache_read = 0.2
|
||||
cache_write = 2.5
|
||||
@@ -0,0 +1,18 @@
|
||||
base_model = "deepseek/deepseek-v3.1"
|
||||
|
||||
[interleaved]
|
||||
field = "reasoning_content"
|
||||
|
||||
[[reasoning_options]]
|
||||
type = "effort"
|
||||
values = ["low", "medium", "high", "xhigh"]
|
||||
|
||||
[cost]
|
||||
input = 0.56
|
||||
output = 1.68
|
||||
cache_read = 0.56
|
||||
cache_write = 0.56
|
||||
|
||||
[limit]
|
||||
context = 163_840
|
||||
output = 131_072
|
||||
@@ -0,0 +1,10 @@
|
||||
base_model = "deepseek/deepseek-v3"
|
||||
|
||||
[cost]
|
||||
input = 0.27
|
||||
output = 1.12
|
||||
cache_read = 0.135
|
||||
cache_write = 0.27
|
||||
|
||||
[limit]
|
||||
context = 163_840
|
||||
@@ -0,0 +1,11 @@
|
||||
base_model = "mistral/devstral-2512"
|
||||
|
||||
[cost]
|
||||
input = 0.4
|
||||
output = 2
|
||||
cache_read = 0.4
|
||||
cache_write = 0.4
|
||||
|
||||
[limit]
|
||||
context = 256_000
|
||||
output = 131_072
|
||||
@@ -0,0 +1,18 @@
|
||||
base_model = "google/gemini-3.1-flash-lite"
|
||||
|
||||
[interleaved]
|
||||
field = "reasoning_content"
|
||||
|
||||
[[reasoning_options]]
|
||||
type = "effort"
|
||||
values = ["low", "medium", "high"]
|
||||
|
||||
[cost]
|
||||
input = 0.25
|
||||
output = 1.5
|
||||
cache_read = 0.03
|
||||
cache_write = 0.25
|
||||
|
||||
[limit]
|
||||
context = 1_000_000
|
||||
output = 64_000
|
||||
@@ -0,0 +1,18 @@
|
||||
base_model = "google/gemini-3.5-flash-lite"
|
||||
|
||||
[interleaved]
|
||||
field = "reasoning_content"
|
||||
|
||||
[[reasoning_options]]
|
||||
type = "effort"
|
||||
values = ["low", "medium", "high"]
|
||||
|
||||
[cost]
|
||||
input = 0.3
|
||||
output = 2.5
|
||||
cache_read = 0.03
|
||||
cache_write = 0.3
|
||||
|
||||
[limit]
|
||||
context = 1_000_000
|
||||
output = 65_000
|
||||
@@ -0,0 +1,18 @@
|
||||
base_model = "google/gemini-3.6-flash"
|
||||
|
||||
[interleaved]
|
||||
field = "reasoning_content"
|
||||
|
||||
[[reasoning_options]]
|
||||
type = "effort"
|
||||
values = ["low", "medium", "high"]
|
||||
|
||||
[cost]
|
||||
input = 1.5
|
||||
output = 7.5
|
||||
cache_read = 0.15
|
||||
cache_write = 1.5
|
||||
|
||||
[limit]
|
||||
context = 1_000_000
|
||||
output = 64_000
|
||||
@@ -0,0 +1,14 @@
|
||||
base_model = "openai/gpt-5.6-luna"
|
||||
|
||||
[interleaved]
|
||||
field = "reasoning_content"
|
||||
|
||||
[[reasoning_options]]
|
||||
type = "effort"
|
||||
values = ["low", "medium", "high", "xhigh"]
|
||||
|
||||
[cost]
|
||||
input = 1
|
||||
output = 6
|
||||
cache_read = 0.1
|
||||
cache_write = 1.25
|
||||
@@ -0,0 +1,14 @@
|
||||
base_model = "openai/gpt-5.6-sol"
|
||||
|
||||
[interleaved]
|
||||
field = "reasoning_content"
|
||||
|
||||
[[reasoning_options]]
|
||||
type = "effort"
|
||||
values = ["low", "medium", "high", "xhigh"]
|
||||
|
||||
[cost]
|
||||
input = 5
|
||||
output = 30
|
||||
cache_read = 0.5
|
||||
cache_write = 6.25
|
||||
@@ -0,0 +1,14 @@
|
||||
base_model = "openai/gpt-5.6-terra"
|
||||
|
||||
[interleaved]
|
||||
field = "reasoning_content"
|
||||
|
||||
[[reasoning_options]]
|
||||
type = "effort"
|
||||
values = ["low", "medium", "high", "xhigh"]
|
||||
|
||||
[cost]
|
||||
input = 2.5
|
||||
output = 15
|
||||
cache_read = 0.25
|
||||
cache_write = 3.125
|
||||
@@ -0,0 +1,17 @@
|
||||
base_model = "xai/grok-4.5"
|
||||
|
||||
[interleaved]
|
||||
field = "reasoning_content"
|
||||
|
||||
[[reasoning_options]]
|
||||
type = "effort"
|
||||
values = ["low", "medium", "high"]
|
||||
|
||||
[cost]
|
||||
input = 2
|
||||
output = 6
|
||||
cache_read = 0.5
|
||||
cache_write = 2
|
||||
|
||||
[limit]
|
||||
output = 131_072
|
||||
@@ -0,0 +1,10 @@
|
||||
base_model = "meta/llama-3.2-1b"
|
||||
|
||||
[cost]
|
||||
input = 0.1
|
||||
output = 0.1
|
||||
cache_read = 0.1
|
||||
cache_write = 0.1
|
||||
|
||||
[limit]
|
||||
output = 131_072
|
||||
@@ -0,0 +1,10 @@
|
||||
base_model = "meta/llama-3.2-3b"
|
||||
|
||||
[cost]
|
||||
input = 0.1
|
||||
output = 0.1
|
||||
cache_read = 0.1
|
||||
cache_write = 0.1
|
||||
|
||||
[limit]
|
||||
output = 131_072
|
||||
@@ -0,0 +1,18 @@
|
||||
base_model = "meta/muse-spark-1.1"
|
||||
|
||||
[interleaved]
|
||||
field = "reasoning_content"
|
||||
|
||||
[[reasoning_options]]
|
||||
type = "effort"
|
||||
values = ["low", "medium", "high"]
|
||||
|
||||
[cost]
|
||||
input = 1.25
|
||||
output = 4.25
|
||||
cache_read = 0.15
|
||||
cache_write = 1.25
|
||||
|
||||
[limit]
|
||||
context = 1_048_576
|
||||
output = 131_072
|
||||
@@ -0,0 +1,11 @@
|
||||
base_model = "mistral/mistral-large-2512"
|
||||
|
||||
[cost]
|
||||
input = 0.5
|
||||
output = 1.5
|
||||
cache_read = 0.5
|
||||
cache_write = 0.5
|
||||
|
||||
[limit]
|
||||
context = 256_000
|
||||
output = 131_072
|
||||
@@ -0,0 +1,11 @@
|
||||
base_model = "mistral/codestral-22b-v0.1"
|
||||
|
||||
[cost]
|
||||
input = 0.3
|
||||
output = 0.9
|
||||
cache_read = 0.3
|
||||
cache_write = 0.3
|
||||
|
||||
[limit]
|
||||
context = 128_000
|
||||
output = 4_000
|
||||
@@ -0,0 +1,18 @@
|
||||
base_model = "mistral/magistral-small-2506"
|
||||
|
||||
[interleaved]
|
||||
field = "reasoning_content"
|
||||
|
||||
[[reasoning_options]]
|
||||
type = "effort"
|
||||
values = ["low", "medium", "high"]
|
||||
|
||||
[cost]
|
||||
input = 0.5
|
||||
output = 1.5
|
||||
cache_read = 0.5
|
||||
cache_write = 0.5
|
||||
|
||||
[limit]
|
||||
context = 128_000
|
||||
output = 64_000
|
||||
@@ -0,0 +1,11 @@
|
||||
base_model = "mistral/ministral-8b-instruct-2410"
|
||||
|
||||
[cost]
|
||||
input = 0.15
|
||||
output = 0.15
|
||||
cache_read = 0.15
|
||||
cache_write = 0.15
|
||||
|
||||
[limit]
|
||||
context = 128_000
|
||||
output = 4_000
|
||||
@@ -0,0 +1,10 @@
|
||||
base_model = "mistral/pixtral-12b"
|
||||
|
||||
[cost]
|
||||
input = 0.15
|
||||
output = 0.15
|
||||
cache_read = 0.15
|
||||
cache_write = 0.15
|
||||
|
||||
[limit]
|
||||
output = 4_000
|
||||
@@ -0,0 +1,17 @@
|
||||
base_model = "moonshotai/kimi-k3"
|
||||
|
||||
[interleaved]
|
||||
field = "reasoning_content"
|
||||
|
||||
[[reasoning_options]]
|
||||
type = "effort"
|
||||
values = ["low", "medium", "high"]
|
||||
|
||||
[cost]
|
||||
input = 3
|
||||
output = 15
|
||||
cache_read = 0.3
|
||||
cache_write = 3
|
||||
|
||||
[limit]
|
||||
context = 1_000_000
|
||||
@@ -0,0 +1,18 @@
|
||||
base_model = "poolside/laguna-s-2.1"
|
||||
|
||||
[interleaved]
|
||||
field = "reasoning_content"
|
||||
|
||||
[[reasoning_options]]
|
||||
type = "effort"
|
||||
values = ["low", "medium", "high"]
|
||||
|
||||
[cost]
|
||||
input = 0.1
|
||||
output = 0.2
|
||||
cache_read = 0.01
|
||||
cache_write = 0.1
|
||||
|
||||
[limit]
|
||||
context = 1_000_000
|
||||
output = 131_072
|
||||
Reference in New Issue
Block a user